/******************************************************************************
 * The MIT License (MIT)
 *
 * Copyright (c) 2015-2017 Baldur Karlsson
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 ******************************************************************************/

#pragma once

// This file is autogenerated with hookset.pl - any changes will be overwritten
// next time that script is run.
// $ pwd
// .../renderdoc/driver/gl
// $ ./hookset.pl > gl_hookset_defs.h
// We need to disable clang-format since this struct is programmatically generated
// clang-format off
////////////////////////////////////////////////////

// dllexport functions
#define DLLExportHooks() \
  HookInit(glCullFace); \
  HookInit(glFrontFace); \
  HookInit(glHint); \
  HookInit(glLineWidth); \
  HookInit(glPointSize); \
  HookInit(glPolygonMode); \
  HookInit(glScissor); \
  HookInit(glTexParameterf); \
  HookInit(glTexParameterfv); \
  HookInit(glTexParameteri); \
  HookInit(glTexParameteriv); \
  HookInit(glTexImage1D); \
  HookInit(glTexImage2D); \
  HookInit(glDrawBuffer); \
  HookInit(glClear); \
  HookInit(glClearColor); \
  HookInit(glClearStencil); \
  HookInit(glClearDepth); \
  HookInit(glStencilMask); \
  HookInit(glColorMask); \
  HookInit(glDepthMask); \
  HookInit(glDisable); \
  HookInit(glEnable); \
  HookInit(glFinish); \
  HookInit(glFlush); \
  HookInit(glBlendFunc); \
  HookInit(glLogicOp); \
  HookInit(glStencilFunc); \
  HookInit(glStencilOp); \
  HookInit(glDepthFunc); \
  HookInit(glPixelStoref); \
  HookInit(glPixelStorei); \
  HookInit(glReadBuffer); \
  HookInit(glReadPixels); \
  HookInit(glGetBooleanv); \
  HookInit(glGetDoublev); \
  HookInit(glGetError); \
  HookInit(glGetFloatv); \
  HookInit(glGetIntegerv); \
  HookInit(glGetString); \
  HookInit(glGetTexImage); \
  HookInit(glGetTexParameterfv); \
  HookInit(glGetTexParameteriv); \
  HookInit(glGetTexLevelParameterfv); \
  HookInit(glGetTexLevelParameteriv); \
  HookInit(glIsEnabled); \
  HookInit(glDepthRange); \
  HookInit(glViewport); \
  HookInit(glDrawArrays); \
  HookInit(glDrawElements); \
  HookInit(glGetPointerv); \
  HookInit(glPolygonOffset); \
  HookInit(glCopyTexImage1D); \
  HookInit(glCopyTexImage2D); \
  HookInit(glCopyTexSubImage1D); \
  HookInit(glCopyTexSubImage2D); \
  HookInit(glTexSubImage1D); \
  HookInit(glTexSubImage2D); \
  HookInit(glBindTexture); \
  HookInit(glDeleteTextures); \
  HookInit(glGenTextures); \
  HookInit(glIsTexture); \



// gl extensions
#define HookCheckGLExtensions() \
  HookExtension(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements); \
  HookExtensionAlias(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements, glDrawRangeElementsEXT); \
  HookExtension(PFNGLTEXIMAGE3DPROC, glTexImage3D); \
  HookExtensionAlias(PFNGLTEXIMAGE3DPROC, glTexImage3D, glTexImage3DEXT); \
  HookExtensionAlias(PFNGLTEXIMAGE3DPROC, glTexImage3D, glTexImage3DOES); \
  HookExtension(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); \
  HookExtensionAlias(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D, glTexSubImage3DOES); \
  HookExtension(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); \
  HookExtensionAlias(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D, glCopyTexSubImage3DOES); \
  HookExtension(PFNGLACTIVETEXTUREPROC, glActiveTexture); \
  HookExtensionAlias(PFNGLACTIVETEXTUREPROC, glActiveTexture, glActiveTextureARB); \
  HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \
  HookExtensionAlias(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage, glSampleCoverageARB); \
  HookExtension(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DARB); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DOES); \
  HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \
  HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \
  HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DARB); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DOES); \
  HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \
  HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \
  HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D, glCompressedTexSubImage1DARB); \
  HookExtension(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage); \
  HookExtensionAlias(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage, glGetCompressedTexImageARB); \
  HookExtension(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate); \
  HookExtensionAlias(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate, glBlendFuncSeparateARB); \
  HookExtension(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays); \
  HookExtensionAlias(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays, glMultiDrawArraysEXT); \
  HookExtension(PFNGLMULTIDRAWELEMENTSPROC, glMultiDrawElements); \
  HookExtension(PFNGLPOINTPARAMETERFPROC, glPointParameterf); \
  HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, glPointParameterfARB); \
  HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, glPointParameterfEXT); \
  HookExtension(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv); \
  HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, glPointParameterfvARB); \
  HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, glPointParameterfvEXT); \
  HookExtension(PFNGLPOINTPARAMETERIPROC, glPointParameteri); \
  HookExtension(PFNGLPOINTPARAMETERIVPROC, glPointParameteriv); \
  HookExtension(PFNGLBLENDCOLORPROC, glBlendColor); \
  HookExtensionAlias(PFNGLBLENDCOLORPROC, glBlendColor, glBlendColorEXT); \
  HookExtension(PFNGLBLENDEQUATIONPROC, glBlendEquation); \
  HookExtensionAlias(PFNGLBLENDEQUATIONPROC, glBlendEquation, glBlendEquationEXT); \
  HookExtension(PFNGLGENQUERIESPROC, glGenQueries); \
  HookExtensionAlias(PFNGLGENQUERIESPROC, glGenQueries, glGenQueriesARB); \
  HookExtensionAlias(PFNGLGENQUERIESPROC, glGenQueries, glGenQueriesEXT); \
  HookExtension(PFNGLDELETEQUERIESPROC, glDeleteQueries); \
  HookExtensionAlias(PFNGLDELETEQUERIESPROC, glDeleteQueries, glDeleteQueriesARB); \
  HookExtensionAlias(PFNGLDELETEQUERIESPROC, glDeleteQueries, glDeleteQueriesEXT); \
  HookExtension(PFNGLISQUERYPROC, glIsQuery); \
  HookExtensionAlias(PFNGLISQUERYPROC, glIsQuery, glIsQueryARB); \
  HookExtensionAlias(PFNGLISQUERYPROC, glIsQuery, glIsQueryEXT); \
  HookExtension(PFNGLBEGINQUERYPROC, glBeginQuery); \
  HookExtensionAlias(PFNGLBEGINQUERYPROC, glBeginQuery, glBeginQueryARB); \
  HookExtensionAlias(PFNGLBEGINQUERYPROC, glBeginQuery, glBeginQueryEXT); \
  HookExtension(PFNGLENDQUERYPROC, glEndQuery); \
  HookExtensionAlias(PFNGLENDQUERYPROC, glEndQuery, glEndQueryARB); \
  HookExtensionAlias(PFNGLENDQUERYPROC, glEndQuery, glEndQueryEXT); \
  HookExtension(PFNGLGETQUERYIVPROC, glGetQueryiv); \
  HookExtensionAlias(PFNGLGETQUERYIVPROC, glGetQueryiv, glGetQueryivARB); \
  HookExtensionAlias(PFNGLGETQUERYIVPROC, glGetQueryiv, glGetQueryivEXT); \
  HookExtension(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv, glGetQueryObjectivARB); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv, glGetQueryObjectivEXT); \
  HookExtension(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv, glGetQueryObjectuivARB); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv, glGetQueryObjectuivEXT); \
  HookExtension(PFNGLBINDBUFFERPROC, glBindBuffer); \
  HookExtensionAlias(PFNGLBINDBUFFERPROC, glBindBuffer, glBindBufferARB); \
  HookExtension(PFNGLDELETEBUFFERSPROC, glDeleteBuffers); \
  HookExtensionAlias(PFNGLDELETEBUFFERSPROC, glDeleteBuffers, glDeleteBuffersARB); \
  HookExtension(PFNGLGENBUFFERSPROC, glGenBuffers); \
  HookExtensionAlias(PFNGLGENBUFFERSPROC, glGenBuffers, glGenBuffersARB); \
  HookExtension(PFNGLISBUFFERPROC, glIsBuffer); \
  HookExtensionAlias(PFNGLISBUFFERPROC, glIsBuffer, glIsBufferARB); \
  HookExtension(PFNGLBUFFERDATAPROC, glBufferData); \
  HookExtensionAlias(PFNGLBUFFERDATAPROC, glBufferData, glBufferDataARB); \
  HookExtension(PFNGLBUFFERSUBDATAPROC, glBufferSubData); \
  HookExtensionAlias(PFNGLBUFFERSUBDATAPROC, glBufferSubData, glBufferSubDataARB); \
  HookExtension(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData); \
  HookExtensionAlias(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData, glGetBufferSubDataARB); \
  HookExtension(PFNGLMAPBUFFERPROC, glMapBuffer); \
  HookExtensionAlias(PFNGLMAPBUFFERPROC, glMapBuffer, glMapBufferARB); \
  HookExtensionAlias(PFNGLMAPBUFFERPROC, glMapBuffer, glMapBufferOES); \
  HookExtension(PFNGLUNMAPBUFFERPROC, glUnmapBuffer); \
  HookExtensionAlias(PFNGLUNMAPBUFFERPROC, glUnmapBuffer, glUnmapBufferARB); \
  HookExtensionAlias(PFNGLUNMAPBUFFERPROC, glUnmapBuffer, glUnmapBufferOES); \
  HookExtension(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv); \
  HookExtensionAlias(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv, glGetBufferParameterivARB); \
  HookExtension(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv); \
  HookExtensionAlias(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv, glGetBufferPointervARB); \
  HookExtensionAlias(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv, glGetBufferPointervOES); \
  HookExtension(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate); \
  HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate, glBlendEquationSeparateARB); \
  HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate, glBlendEquationSeparateEXT); \
  HookExtension(PFNGLDRAWBUFFERSPROC, glDrawBuffers); \
  HookExtensionAlias(PFNGLDRAWBUFFERSPROC, glDrawBuffers, glDrawBuffersARB); \
  HookExtensionAlias(PFNGLDRAWBUFFERSPROC, glDrawBuffers, glDrawBuffersEXT); \
  HookExtension(PFNGLSTENCILOPSEPARATEPROC, glStencilOpSeparate); \
  HookExtension(PFNGLSTENCILFUNCSEPARATEPROC, glStencilFuncSeparate); \
  HookExtension(PFNGLSTENCILMASKSEPARATEPROC, glStencilMaskSeparate); \
  HookExtension(PFNGLATTACHSHADERPROC, glAttachShader); \
  HookExtension(PFNGLBINDATTRIBLOCATIONPROC, glBindAttribLocation); \
  HookExtension(PFNGLCOMPILESHADERPROC, glCompileShader); \
  HookExtension(PFNGLCREATEPROGRAMPROC, glCreateProgram); \
  HookExtension(PFNGLCREATESHADERPROC, glCreateShader); \
  HookExtension(PFNGLDELETEPROGRAMPROC, glDeleteProgram); \
  HookExtension(PFNGLDELETESHADERPROC, glDeleteShader); \
  HookExtension(PFNGLDETACHSHADERPROC, glDetachShader); \
  HookExtension(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); \
  HookExtensionAlias(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray, glDisableVertexAttribArrayARB); \
  HookExtension(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); \
  HookExtensionAlias(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray, glEnableVertexAttribArrayARB); \
  HookExtension(PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); \
  HookExtension(PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); \
  HookExtension(PFNGLGETATTACHEDSHADERSPROC, glGetAttachedShaders); \
  HookExtension(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); \
  HookExtension(PFNGLGETPROGRAMIVPROC, glGetProgramiv); \
  HookExtension(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); \
  HookExtension(PFNGLGETSHADERIVPROC, glGetShaderiv); \
  HookExtension(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); \
  HookExtension(PFNGLGETSHADERSOURCEPROC, glGetShaderSource); \
  HookExtension(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); \
  HookExtension(PFNGLGETUNIFORMFVPROC, glGetUniformfv); \
  HookExtension(PFNGLGETUNIFORMIVPROC, glGetUniformiv); \
  HookExtension(PFNGLGETVERTEXATTRIBDVPROC, glGetVertexAttribdv); \
  HookExtension(PFNGLGETVERTEXATTRIBFVPROC, glGetVertexAttribfv); \
  HookExtension(PFNGLGETVERTEXATTRIBIVPROC, glGetVertexAttribiv); \
  HookExtension(PFNGLGETVERTEXATTRIBPOINTERVPROC, glGetVertexAttribPointerv); \
  HookExtension(PFNGLISPROGRAMPROC, glIsProgram); \
  HookExtension(PFNGLISSHADERPROC, glIsShader); \
  HookExtension(PFNGLLINKPROGRAMPROC, glLinkProgram); \
  HookExtension(PFNGLSHADERSOURCEPROC, glShaderSource); \
  HookExtension(PFNGLUSEPROGRAMPROC, glUseProgram); \
  HookExtension(PFNGLUNIFORM1FPROC, glUniform1f); \
  HookExtension(PFNGLUNIFORM2FPROC, glUniform2f); \
  HookExtension(PFNGLUNIFORM3FPROC, glUniform3f); \
  HookExtension(PFNGLUNIFORM4FPROC, glUniform4f); \
  HookExtension(PFNGLUNIFORM1IPROC, glUniform1i); \
  HookExtension(PFNGLUNIFORM2IPROC, glUniform2i); \
  HookExtension(PFNGLUNIFORM3IPROC, glUniform3i); \
  HookExtension(PFNGLUNIFORM4IPROC, glUniform4i); \
  HookExtension(PFNGLUNIFORM1FVPROC, glUniform1fv); \
  HookExtension(PFNGLUNIFORM2FVPROC, glUniform2fv); \
  HookExtension(PFNGLUNIFORM3FVPROC, glUniform3fv); \
  HookExtension(PFNGLUNIFORM4FVPROC, glUniform4fv); \
  HookExtension(PFNGLUNIFORM1IVPROC, glUniform1iv); \
  HookExtension(PFNGLUNIFORM2IVPROC, glUniform2iv); \
  HookExtension(PFNGLUNIFORM3IVPROC, glUniform3iv); \
  HookExtension(PFNGLUNIFORM4IVPROC, glUniform4iv); \
  HookExtension(PFNGLUNIFORMMATRIX2FVPROC, glUniformMatrix2fv); \
  HookExtension(PFNGLUNIFORMMATRIX3FVPROC, glUniformMatrix3fv); \
  HookExtension(PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); \
  HookExtension(PFNGLVALIDATEPROGRAMPROC, glValidateProgram); \
  HookExtension(PFNGLVERTEXATTRIB1DPROC, glVertexAttrib1d); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1DPROC, glVertexAttrib1d, glVertexAttrib1dARB); \
  HookExtension(PFNGLVERTEXATTRIB1DVPROC, glVertexAttrib1dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1DVPROC, glVertexAttrib1dv, glVertexAttrib1dvARB); \
  HookExtension(PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f, glVertexAttrib1fARB); \
  HookExtension(PFNGLVERTEXATTRIB1FVPROC, glVertexAttrib1fv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1FVPROC, glVertexAttrib1fv, glVertexAttrib1fvARB); \
  HookExtension(PFNGLVERTEXATTRIB1SPROC, glVertexAttrib1s); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1SPROC, glVertexAttrib1s, glVertexAttrib1sARB); \
  HookExtension(PFNGLVERTEXATTRIB1SVPROC, glVertexAttrib1sv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB1SVPROC, glVertexAttrib1sv, glVertexAttrib1svARB); \
  HookExtension(PFNGLVERTEXATTRIB2DPROC, glVertexAttrib2d); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2DPROC, glVertexAttrib2d, glVertexAttrib2dARB); \
  HookExtension(PFNGLVERTEXATTRIB2DVPROC, glVertexAttrib2dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2DVPROC, glVertexAttrib2dv, glVertexAttrib2dvARB); \
  HookExtension(PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f, glVertexAttrib2fARB); \
  HookExtension(PFNGLVERTEXATTRIB2FVPROC, glVertexAttrib2fv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2FVPROC, glVertexAttrib2fv, glVertexAttrib2fvARB); \
  HookExtension(PFNGLVERTEXATTRIB2SPROC, glVertexAttrib2s); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2SPROC, glVertexAttrib2s, glVertexAttrib2sARB); \
  HookExtension(PFNGLVERTEXATTRIB2SVPROC, glVertexAttrib2sv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB2SVPROC, glVertexAttrib2sv, glVertexAttrib2svARB); \
  HookExtension(PFNGLVERTEXATTRIB3DPROC, glVertexAttrib3d); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3DPROC, glVertexAttrib3d, glVertexAttrib3dARB); \
  HookExtension(PFNGLVERTEXATTRIB3DVPROC, glVertexAttrib3dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3DVPROC, glVertexAttrib3dv, glVertexAttrib3dvARB); \
  HookExtension(PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f, glVertexAttrib3fARB); \
  HookExtension(PFNGLVERTEXATTRIB3FVPROC, glVertexAttrib3fv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3FVPROC, glVertexAttrib3fv, glVertexAttrib3fvARB); \
  HookExtension(PFNGLVERTEXATTRIB3SPROC, glVertexAttrib3s); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3SPROC, glVertexAttrib3s, glVertexAttrib3sARB); \
  HookExtension(PFNGLVERTEXATTRIB3SVPROC, glVertexAttrib3sv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB3SVPROC, glVertexAttrib3sv, glVertexAttrib3svARB); \
  HookExtension(PFNGLVERTEXATTRIB4NBVPROC, glVertexAttrib4Nbv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NBVPROC, glVertexAttrib4Nbv, glVertexAttrib4NbvARB); \
  HookExtension(PFNGLVERTEXATTRIB4NIVPROC, glVertexAttrib4Niv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NIVPROC, glVertexAttrib4Niv, glVertexAttrib4NivARB); \
  HookExtension(PFNGLVERTEXATTRIB4NSVPROC, glVertexAttrib4Nsv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NSVPROC, glVertexAttrib4Nsv, glVertexAttrib4NsvARB); \
  HookExtension(PFNGLVERTEXATTRIB4NUBPROC, glVertexAttrib4Nub); \
  HookExtension(PFNGLVERTEXATTRIB4NUBVPROC, glVertexAttrib4Nubv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NUBVPROC, glVertexAttrib4Nubv, glVertexAttrib4NubvARB); \
  HookExtension(PFNGLVERTEXATTRIB4NUIVPROC, glVertexAttrib4Nuiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NUIVPROC, glVertexAttrib4Nuiv, glVertexAttrib4NuivARB); \
  HookExtension(PFNGLVERTEXATTRIB4NUSVPROC, glVertexAttrib4Nusv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4NUSVPROC, glVertexAttrib4Nusv, glVertexAttrib4NusvARB); \
  HookExtension(PFNGLVERTEXATTRIB4BVPROC, glVertexAttrib4bv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4BVPROC, glVertexAttrib4bv, glVertexAttrib4bvARB); \
  HookExtension(PFNGLVERTEXATTRIB4DPROC, glVertexAttrib4d); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4DPROC, glVertexAttrib4d, glVertexAttrib4dARB); \
  HookExtension(PFNGLVERTEXATTRIB4DVPROC, glVertexAttrib4dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4DVPROC, glVertexAttrib4dv, glVertexAttrib4dvARB); \
  HookExtension(PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f, glVertexAttrib4fARB); \
  HookExtension(PFNGLVERTEXATTRIB4FVPROC, glVertexAttrib4fv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4FVPROC, glVertexAttrib4fv, glVertexAttrib4fvARB); \
  HookExtension(PFNGLVERTEXATTRIB4IVPROC, glVertexAttrib4iv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4IVPROC, glVertexAttrib4iv, glVertexAttrib4ivARB); \
  HookExtension(PFNGLVERTEXATTRIB4SPROC, glVertexAttrib4s); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4SPROC, glVertexAttrib4s, glVertexAttrib4sARB); \
  HookExtension(PFNGLVERTEXATTRIB4SVPROC, glVertexAttrib4sv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4SVPROC, glVertexAttrib4sv, glVertexAttrib4svARB); \
  HookExtension(PFNGLVERTEXATTRIB4UBVPROC, glVertexAttrib4ubv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4UBVPROC, glVertexAttrib4ubv, glVertexAttrib4ubvARB); \
  HookExtension(PFNGLVERTEXATTRIB4UIVPROC, glVertexAttrib4uiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4UIVPROC, glVertexAttrib4uiv, glVertexAttrib4uivARB); \
  HookExtension(PFNGLVERTEXATTRIB4USVPROC, glVertexAttrib4usv); \
  HookExtensionAlias(PFNGLVERTEXATTRIB4USVPROC, glVertexAttrib4usv, glVertexAttrib4usvARB); \
  HookExtension(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); \
  HookExtensionAlias(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer, glVertexAttribPointerARB); \
  HookExtension(PFNGLUNIFORMMATRIX2X3FVPROC, glUniformMatrix2x3fv); \
  HookExtension(PFNGLUNIFORMMATRIX3X2FVPROC, glUniformMatrix3x2fv); \
  HookExtension(PFNGLUNIFORMMATRIX2X4FVPROC, glUniformMatrix2x4fv); \
  HookExtension(PFNGLUNIFORMMATRIX4X2FVPROC, glUniformMatrix4x2fv); \
  HookExtension(PFNGLUNIFORMMATRIX3X4FVPROC, glUniformMatrix3x4fv); \
  HookExtension(PFNGLUNIFORMMATRIX4X3FVPROC, glUniformMatrix4x3fv); \
  HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \
  HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskiEXT); \
  HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskIndexedEXT); \
  HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \
  HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \
  HookExtension(PFNGLENABLEIPROC, glEnablei); \
  HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableiEXT); \
  HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \
  HookExtension(PFNGLDISABLEIPROC, glDisablei); \
  HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableiEXT); \
  HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \
  HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \
  HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnablediEXT); \
  HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \
  HookExtension(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback); \
  HookExtensionAlias(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback, glBeginTransformFeedbackEXT); \
  HookExtension(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback); \
  HookExtensionAlias(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback, glEndTransformFeedbackEXT); \
  HookExtension(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange); \
  HookExtensionAlias(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange, glBindBufferRangeEXT); \
  HookExtension(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); \
  HookExtensionAlias(PFNGLBINDBUFFERBASEPROC, glBindBufferBase, glBindBufferBaseEXT); \
  HookExtension(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings); \
  HookExtensionAlias(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings, glTransformFeedbackVaryingsEXT); \
  HookExtension(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying); \
  HookExtensionAlias(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying, glGetTransformFeedbackVaryingEXT); \
  HookExtension(PFNGLCLAMPCOLORPROC, glClampColor); \
  HookExtensionAlias(PFNGLCLAMPCOLORPROC, glClampColor, glClampColorARB); \
  HookExtension(PFNGLBEGINCONDITIONALRENDERPROC, glBeginConditionalRender); \
  HookExtension(PFNGLENDCONDITIONALRENDERPROC, glEndConditionalRender); \
  HookExtension(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer); \
  HookExtensionAlias(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer, glVertexAttribIPointerEXT); \
  HookExtension(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv); \
  HookExtensionAlias(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv, glGetVertexAttribIivEXT); \
  HookExtension(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv); \
  HookExtensionAlias(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv, glGetVertexAttribIuivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI1IPROC, glVertexAttribI1i); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI1IPROC, glVertexAttribI1i, glVertexAttribI1iEXT); \
  HookExtension(PFNGLVERTEXATTRIBI2IPROC, glVertexAttribI2i); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI2IPROC, glVertexAttribI2i, glVertexAttribI2iEXT); \
  HookExtension(PFNGLVERTEXATTRIBI3IPROC, glVertexAttribI3i); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI3IPROC, glVertexAttribI3i, glVertexAttribI3iEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4IPROC, glVertexAttribI4i); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4IPROC, glVertexAttribI4i, glVertexAttribI4iEXT); \
  HookExtension(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui, glVertexAttribI1uiEXT); \
  HookExtension(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui, glVertexAttribI2uiEXT); \
  HookExtension(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui, glVertexAttribI3uiEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui, glVertexAttribI4uiEXT); \
  HookExtension(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv, glVertexAttribI1ivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv, glVertexAttribI2ivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv, glVertexAttribI3ivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4IVPROC, glVertexAttribI4iv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4IVPROC, glVertexAttribI4iv, glVertexAttribI4ivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv, glVertexAttribI1uivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv, glVertexAttribI2uivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv, glVertexAttribI3uivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv, glVertexAttribI4uivEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv, glVertexAttribI4bvEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4SVPROC, glVertexAttribI4sv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4SVPROC, glVertexAttribI4sv, glVertexAttribI4svEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4UBVPROC, glVertexAttribI4ubv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4UBVPROC, glVertexAttribI4ubv, glVertexAttribI4ubvEXT); \
  HookExtension(PFNGLVERTEXATTRIBI4USVPROC, glVertexAttribI4usv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBI4USVPROC, glVertexAttribI4usv, glVertexAttribI4usvEXT); \
  HookExtension(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv); \
  HookExtensionAlias(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv, glGetUniformuivEXT); \
  HookExtension(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation); \
  HookExtensionAlias(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation, glBindFragDataLocationEXT); \
  HookExtension(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation); \
  HookExtensionAlias(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation, glGetFragDataLocationEXT); \
  HookExtension(PFNGLUNIFORM1UIPROC, glUniform1ui); \
  HookExtensionAlias(PFNGLUNIFORM1UIPROC, glUniform1ui, glUniform1uiEXT); \
  HookExtension(PFNGLUNIFORM2UIPROC, glUniform2ui); \
  HookExtensionAlias(PFNGLUNIFORM2UIPROC, glUniform2ui, glUniform2uiEXT); \
  HookExtension(PFNGLUNIFORM3UIPROC, glUniform3ui); \
  HookExtensionAlias(PFNGLUNIFORM3UIPROC, glUniform3ui, glUniform3uiEXT); \
  HookExtension(PFNGLUNIFORM4UIPROC, glUniform4ui); \
  HookExtensionAlias(PFNGLUNIFORM4UIPROC, glUniform4ui, glUniform4uiEXT); \
  HookExtension(PFNGLUNIFORM1UIVPROC, glUniform1uiv); \
  HookExtensionAlias(PFNGLUNIFORM1UIVPROC, glUniform1uiv, glUniform1uivEXT); \
  HookExtension(PFNGLUNIFORM2UIVPROC, glUniform2uiv); \
  HookExtensionAlias(PFNGLUNIFORM2UIVPROC, glUniform2uiv, glUniform2uivEXT); \
  HookExtension(PFNGLUNIFORM3UIVPROC, glUniform3uiv); \
  HookExtensionAlias(PFNGLUNIFORM3UIVPROC, glUniform3uiv, glUniform3uivEXT); \
  HookExtension(PFNGLUNIFORM4UIVPROC, glUniform4uiv); \
  HookExtensionAlias(PFNGLUNIFORM4UIVPROC, glUniform4uiv, glUniform4uivEXT); \
  HookExtension(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv); \
  HookExtensionAlias(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv, glTexParameterIivEXT); \
  HookExtensionAlias(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv, glTexParameterIivOES); \
  HookExtension(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv); \
  HookExtensionAlias(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv, glTexParameterIuivEXT); \
  HookExtensionAlias(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv, glTexParameterIuivOES); \
  HookExtension(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv); \
  HookExtensionAlias(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv, glGetTexParameterIivEXT); \
  HookExtensionAlias(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv, glGetTexParameterIivOES); \
  HookExtension(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv); \
  HookExtensionAlias(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv, glGetTexParameterIuivEXT); \
  HookExtensionAlias(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv, glGetTexParameterIuivOES); \
  HookExtension(PFNGLCLEARBUFFERIVPROC, glClearBufferiv); \
  HookExtension(PFNGLCLEARBUFFERUIVPROC, glClearBufferuiv); \
  HookExtension(PFNGLCLEARBUFFERFVPROC, glClearBufferfv); \
  HookExtension(PFNGLCLEARBUFFERFIPROC, glClearBufferfi); \
  HookExtension(PFNGLGETSTRINGIPROC, glGetStringi); \
  HookExtension(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer); \
  HookExtensionAlias(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer, glIsRenderbufferEXT); \
  HookExtension(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); \
  HookExtensionAlias(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer, glBindRenderbufferEXT); \
  HookExtension(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); \
  HookExtensionAlias(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers, glDeleteRenderbuffersEXT); \
  HookExtension(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); \
  HookExtensionAlias(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers, glGenRenderbuffersEXT); \
  HookExtension(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); \
  HookExtensionAlias(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage, glRenderbufferStorageEXT); \
  HookExtension(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv); \
  HookExtensionAlias(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv, glGetRenderbufferParameterivEXT); \
  HookExtension(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer); \
  HookExtensionAlias(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer, glIsFramebufferEXT); \
  HookExtension(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); \
  HookExtensionAlias(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer, glBindFramebufferEXT); \
  HookExtension(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); \
  HookExtensionAlias(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers, glDeleteFramebuffersEXT); \
  HookExtension(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); \
  HookExtensionAlias(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers, glGenFramebuffersEXT); \
  HookExtension(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); \
  HookExtensionAlias(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus, glCheckFramebufferStatusEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTURE1DPROC, glFramebufferTexture1D); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE1DPROC, glFramebufferTexture1D, glFramebufferTexture1DEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D, glFramebufferTexture2DEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D, glFramebufferTexture3DEXT); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D, glFramebufferTexture3DOES); \
  HookExtension(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); \
  HookExtensionAlias(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer, glFramebufferRenderbufferEXT); \
  HookExtension(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv); \
  HookExtensionAlias(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameterivEXT); \
  HookExtension(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap); \
  HookExtensionAlias(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap, glGenerateMipmapEXT); \
  HookExtension(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer); \
  HookExtensionAlias(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer, glBlitFramebufferEXT); \
  HookExtension(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); \
  HookExtensionAlias(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample, glRenderbufferStorageMultisampleEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer, glFramebufferTextureLayerARB); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer, glFramebufferTextureLayerEXT); \
  HookExtension(PFNGLMAPBUFFERRANGEPROC, glMapBufferRange); \
  HookExtension(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange); \
  HookExtension(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); \
  HookExtensionAlias(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray, glBindVertexArrayOES); \
  HookExtension(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); \
  HookExtensionAlias(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays, glDeleteVertexArraysOES); \
  HookExtension(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); \
  HookExtensionAlias(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays, glGenVertexArraysOES); \
  HookExtension(PFNGLISVERTEXARRAYPROC, glIsVertexArray); \
  HookExtensionAlias(PFNGLISVERTEXARRAYPROC, glIsVertexArray, glIsVertexArrayOES); \
  HookExtension(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced); \
  HookExtensionAlias(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced, glDrawArraysInstancedARB); \
  HookExtensionAlias(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced, glDrawArraysInstancedEXT); \
  HookExtension(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced, glDrawElementsInstancedARB); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced, glDrawElementsInstancedEXT); \
  HookExtension(PFNGLTEXBUFFERPROC, glTexBuffer); \
  HookExtensionAlias(PFNGLTEXBUFFERPROC, glTexBuffer, glTexBufferARB); \
  HookExtensionAlias(PFNGLTEXBUFFERPROC, glTexBuffer, glTexBufferEXT); \
  HookExtensionAlias(PFNGLTEXBUFFERPROC, glTexBuffer, glTexBufferOES); \
  HookExtension(PFNGLPRIMITIVERESTARTINDEXPROC, glPrimitiveRestartIndex); \
  HookExtension(PFNGLCOPYBUFFERSUBDATAPROC, glCopyBufferSubData); \
  HookExtension(PFNGLGETUNIFORMINDICESPROC, glGetUniformIndices); \
  HookExtension(PFNGLGETACTIVEUNIFORMSIVPROC, glGetActiveUniformsiv); \
  HookExtension(PFNGLGETACTIVEUNIFORMNAMEPROC, glGetActiveUniformName); \
  HookExtension(PFNGLGETUNIFORMBLOCKINDEXPROC, glGetUniformBlockIndex); \
  HookExtension(PFNGLGETACTIVEUNIFORMBLOCKIVPROC, glGetActiveUniformBlockiv); \
  HookExtension(PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC, glGetActiveUniformBlockName); \
  HookExtension(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding); \
  HookExtension(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex); \
  HookExtensionAlias(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex, glDrawElementsBaseVertexEXT); \
  HookExtensionAlias(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex, glDrawElementsBaseVertexOES); \
  HookExtension(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex); \
  HookExtensionAlias(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex, glDrawRangeElementsBaseVertexEXT); \
  HookExtensionAlias(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex, glDrawRangeElementsBaseVertexOES); \
  HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, glDrawElementsInstancedBaseVertex); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, glDrawElementsInstancedBaseVertex, glDrawElementsInstancedBaseVertexEXT); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, glDrawElementsInstancedBaseVertex, DrawElementsInstancedBaseVertexOES); \
  HookExtension(PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC, glMultiDrawElementsBaseVertex); \
  HookExtensionAlias(PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC, glMultiDrawElementsBaseVertex, glMultiDrawElementsBaseVertexEXT); \
  HookExtensionAlias(PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC, glMultiDrawElementsBaseVertex, glMultiDrawElementsBaseVertexOES); \
  HookExtension(PFNGLPROVOKINGVERTEXPROC, glProvokingVertex); \
  HookExtensionAlias(PFNGLPROVOKINGVERTEXPROC, glProvokingVertex, glProvokingVertexEXT); \
  HookExtension(PFNGLFENCESYNCPROC, glFenceSync); \
  HookExtension(PFNGLISSYNCPROC, glIsSync); \
  HookExtension(PFNGLDELETESYNCPROC, glDeleteSync); \
  HookExtension(PFNGLCLIENTWAITSYNCPROC, glClientWaitSync); \
  HookExtension(PFNGLWAITSYNCPROC, glWaitSync); \
  HookExtension(PFNGLGETINTEGER64VPROC, glGetInteger64v); \
  HookExtension(PFNGLGETSYNCIVPROC, glGetSynciv); \
  HookExtension(PFNGLGETINTEGER64I_VPROC, glGetInteger64i_v); \
  HookExtension(PFNGLGETBUFFERPARAMETERI64VPROC, glGetBufferParameteri64v); \
  HookExtension(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture, glFramebufferTextureARB); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture, glFramebufferTextureOES); \
  HookExtensionAlias(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture, glFramebufferTextureEXT); \
  HookExtension(PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); \
  HookExtension(PFNGLTEXIMAGE3DMULTISAMPLEPROC, glTexImage3DMultisample); \
  HookExtension(PFNGLGETMULTISAMPLEFVPROC, glGetMultisamplefv); \
  HookExtension(PFNGLSAMPLEMASKIPROC, glSampleMaski); \
  HookExtension(PFNGLBINDFRAGDATALOCATIONINDEXEDPROC, glBindFragDataLocationIndexed); \
  HookExtension(PFNGLGETFRAGDATAINDEXPROC, glGetFragDataIndex); \
  HookExtension(PFNGLGENSAMPLERSPROC, glGenSamplers); \
  HookExtension(PFNGLDELETESAMPLERSPROC, glDeleteSamplers); \
  HookExtension(PFNGLISSAMPLERPROC, glIsSampler); \
  HookExtension(PFNGLBINDSAMPLERPROC, glBindSampler); \
  HookExtension(PFNGLSAMPLERPARAMETERIPROC, glSamplerParameteri); \
  HookExtension(PFNGLSAMPLERPARAMETERIVPROC, glSamplerParameteriv); \
  HookExtension(PFNGLSAMPLERPARAMETERFPROC, glSamplerParameterf); \
  HookExtension(PFNGLSAMPLERPARAMETERFVPROC, glSamplerParameterfv); \
  HookExtension(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv); \
  HookExtensionAlias(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv, glSamplerParameterIivEXT); \
  HookExtensionAlias(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv, glSamplerParameterIivOES); \
  HookExtension(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv); \
  HookExtensionAlias(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv, glSamplerParameterIuivEXT); \
  HookExtensionAlias(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv, glSamplerParameterIuivOES); \
  HookExtension(PFNGLGETSAMPLERPARAMETERIVPROC, glGetSamplerParameteriv); \
  HookExtension(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv); \
  HookExtensionAlias(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv, glGetSamplerParameterIivEXT); \
  HookExtensionAlias(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv, glGetSamplerParameterIivOES); \
  HookExtension(PFNGLGETSAMPLERPARAMETERFVPROC, glGetSamplerParameterfv); \
  HookExtension(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv); \
  HookExtensionAlias(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv, glGetSamplerParameterIuivEXT); \
  HookExtensionAlias(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv, glGetSamplerParameterIuivOES); \
  HookExtension(PFNGLQUERYCOUNTERPROC, glQueryCounter); \
  HookExtensionAlias(PFNGLQUERYCOUNTERPROC, glQueryCounter, glQueryCounterEXT); \
  HookExtension(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v, glGetQueryObjecti64vEXT); \
  HookExtension(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); \
  HookExtensionAlias(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v, glGetQueryObjectui64vEXT); \
  HookExtension(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor); \
  HookExtensionAlias(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor, glVertexAttribDivisorARB); \
  HookExtension(PFNGLVERTEXATTRIBP1UIPROC, glVertexAttribP1ui); \
  HookExtension(PFNGLVERTEXATTRIBP1UIVPROC, glVertexAttribP1uiv); \
  HookExtension(PFNGLVERTEXATTRIBP2UIPROC, glVertexAttribP2ui); \
  HookExtension(PFNGLVERTEXATTRIBP2UIVPROC, glVertexAttribP2uiv); \
  HookExtension(PFNGLVERTEXATTRIBP3UIPROC, glVertexAttribP3ui); \
  HookExtension(PFNGLVERTEXATTRIBP3UIVPROC, glVertexAttribP3uiv); \
  HookExtension(PFNGLVERTEXATTRIBP4UIPROC, glVertexAttribP4ui); \
  HookExtension(PFNGLVERTEXATTRIBP4UIVPROC, glVertexAttribP4uiv); \
  HookExtension(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading); \
  HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingARB); \
  HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingOES); \
  HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \
  HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \
  HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiEXT); \
  HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \
  HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiARB); \
  HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiEXT); \
  HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \
  HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciARB); \
  HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciEXT); \
  HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \
  HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiARB); \
  HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiEXT); \
  HookExtension(PFNGLDRAWARRAYSINDIRECTPROC, glDrawArraysIndirect); \
  HookExtension(PFNGLDRAWELEMENTSINDIRECTPROC, glDrawElementsIndirect); \
  HookExtension(PFNGLUNIFORM1DPROC, glUniform1d); \
  HookExtension(PFNGLUNIFORM2DPROC, glUniform2d); \
  HookExtension(PFNGLUNIFORM3DPROC, glUniform3d); \
  HookExtension(PFNGLUNIFORM4DPROC, glUniform4d); \
  HookExtension(PFNGLUNIFORM1DVPROC, glUniform1dv); \
  HookExtension(PFNGLUNIFORM2DVPROC, glUniform2dv); \
  HookExtension(PFNGLUNIFORM3DVPROC, glUniform3dv); \
  HookExtension(PFNGLUNIFORM4DVPROC, glUniform4dv); \
  HookExtension(PFNGLUNIFORMMATRIX2DVPROC, glUniformMatrix2dv); \
  HookExtension(PFNGLUNIFORMMATRIX3DVPROC, glUniformMatrix3dv); \
  HookExtension(PFNGLUNIFORMMATRIX4DVPROC, glUniformMatrix4dv); \
  HookExtension(PFNGLUNIFORMMATRIX2X3DVPROC, glUniformMatrix2x3dv); \
  HookExtension(PFNGLUNIFORMMATRIX2X4DVPROC, glUniformMatrix2x4dv); \
  HookExtension(PFNGLUNIFORMMATRIX3X2DVPROC, glUniformMatrix3x2dv); \
  HookExtension(PFNGLUNIFORMMATRIX3X4DVPROC, glUniformMatrix3x4dv); \
  HookExtension(PFNGLUNIFORMMATRIX4X2DVPROC, glUniformMatrix4x2dv); \
  HookExtension(PFNGLUNIFORMMATRIX4X3DVPROC, glUniformMatrix4x3dv); \
  HookExtension(PFNGLGETUNIFORMDVPROC, glGetUniformdv); \
  HookExtension(PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC, glGetSubroutineUniformLocation); \
  HookExtension(PFNGLGETSUBROUTINEINDEXPROC, glGetSubroutineIndex); \
  HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC, glGetActiveSubroutineUniformiv); \
  HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC, glGetActiveSubroutineUniformName); \
  HookExtension(PFNGLGETACTIVESUBROUTINENAMEPROC, glGetActiveSubroutineName); \
  HookExtension(PFNGLUNIFORMSUBROUTINESUIVPROC, glUniformSubroutinesuiv); \
  HookExtension(PFNGLGETUNIFORMSUBROUTINEUIVPROC, glGetUniformSubroutineuiv); \
  HookExtension(PFNGLGETPROGRAMSTAGEIVPROC, glGetProgramStageiv); \
  HookExtension(PFNGLPATCHPARAMETERIPROC, glPatchParameteri); \
  HookExtensionAlias(PFNGLPATCHPARAMETERIPROC, glPatchParameteri, glPatchParameteriEXT); \
  HookExtensionAlias(PFNGLPATCHPARAMETERIPROC, glPatchParameteri, glPatchParameteriOES); \
  HookExtension(PFNGLPATCHPARAMETERFVPROC, glPatchParameterfv); \
  HookExtension(PFNGLBINDTRANSFORMFEEDBACKPROC, glBindTransformFeedback); \
  HookExtension(PFNGLDELETETRANSFORMFEEDBACKSPROC, glDeleteTransformFeedbacks); \
  HookExtension(PFNGLGENTRANSFORMFEEDBACKSPROC, glGenTransformFeedbacks); \
  HookExtension(PFNGLISTRANSFORMFEEDBACKPROC, glIsTransformFeedback); \
  HookExtension(PFNGLPAUSETRANSFORMFEEDBACKPROC, glPauseTransformFeedback); \
  HookExtension(PFNGLRESUMETRANSFORMFEEDBACKPROC, glResumeTransformFeedback); \
  HookExtension(PFNGLDRAWTRANSFORMFEEDBACKPROC, glDrawTransformFeedback); \
  HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC, glDrawTransformFeedbackStream); \
  HookExtension(PFNGLBEGINQUERYINDEXEDPROC, glBeginQueryIndexed); \
  HookExtension(PFNGLENDQUERYINDEXEDPROC, glEndQueryIndexed); \
  HookExtension(PFNGLGETQUERYINDEXEDIVPROC, glGetQueryIndexediv); \
  HookExtension(PFNGLRELEASESHADERCOMPILERPROC, glReleaseShaderCompiler); \
  HookExtension(PFNGLSHADERBINARYPROC, glShaderBinary); \
  HookExtension(PFNGLGETSHADERPRECISIONFORMATPROC, glGetShaderPrecisionFormat); \
  HookExtension(PFNGLDEPTHRANGEFPROC, glDepthRangef); \
  HookExtension(PFNGLCLEARDEPTHFPROC, glClearDepthf); \
  HookExtension(PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); \
  HookExtension(PFNGLPROGRAMBINARYPROC, glProgramBinary); \
  HookExtension(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); \
  HookExtensionAlias(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri, glProgramParameteriARB); \
  HookExtension(PFNGLUSEPROGRAMSTAGESPROC, glUseProgramStages); \
  HookExtension(PFNGLACTIVESHADERPROGRAMPROC, glActiveShaderProgram); \
  HookExtension(PFNGLCREATESHADERPROGRAMVPROC, glCreateShaderProgramv); \
  HookExtension(PFNGLBINDPROGRAMPIPELINEPROC, glBindProgramPipeline); \
  HookExtension(PFNGLDELETEPROGRAMPIPELINESPROC, glDeleteProgramPipelines); \
  HookExtension(PFNGLGENPROGRAMPIPELINESPROC, glGenProgramPipelines); \
  HookExtension(PFNGLISPROGRAMPIPELINEPROC, glIsProgramPipeline); \
  HookExtension(PFNGLGETPROGRAMPIPELINEIVPROC, glGetProgramPipelineiv); \
  HookExtension(PFNGLPROGRAMUNIFORM1IPROC, glProgramUniform1i); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1IPROC, glProgramUniform1i, glProgramUniform1iEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1IVPROC, glProgramUniform1iv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1IVPROC, glProgramUniform1iv, glProgramUniform1ivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1FPROC, glProgramUniform1f); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1FPROC, glProgramUniform1f, glProgramUniform1fEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1FVPROC, glProgramUniform1fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1FVPROC, glProgramUniform1fv, glProgramUniform1fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1DPROC, glProgramUniform1d); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1DPROC, glProgramUniform1d, glProgramUniform1dEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1DVPROC, glProgramUniform1dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1DVPROC, glProgramUniform1dv, glProgramUniform1dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1UIPROC, glProgramUniform1ui); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1UIPROC, glProgramUniform1ui, glProgramUniform1uiEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM1UIVPROC, glProgramUniform1uiv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM1UIVPROC, glProgramUniform1uiv, glProgramUniform1uivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2IPROC, glProgramUniform2i); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2IPROC, glProgramUniform2i, glProgramUniform2iEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2IVPROC, glProgramUniform2iv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2IVPROC, glProgramUniform2iv, glProgramUniform2ivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2FPROC, glProgramUniform2f); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2FPROC, glProgramUniform2f, glProgramUniform2fEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2FVPROC, glProgramUniform2fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2FVPROC, glProgramUniform2fv, glProgramUniform2fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2DPROC, glProgramUniform2d); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2DPROC, glProgramUniform2d, glProgramUniform2dEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2DVPROC, glProgramUniform2dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2DVPROC, glProgramUniform2dv, glProgramUniform2dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2UIPROC, glProgramUniform2ui); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2UIPROC, glProgramUniform2ui, glProgramUniform2uiEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM2UIVPROC, glProgramUniform2uiv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM2UIVPROC, glProgramUniform2uiv, glProgramUniform2uivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3IPROC, glProgramUniform3i); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3IPROC, glProgramUniform3i, glProgramUniform3iEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3IVPROC, glProgramUniform3iv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3IVPROC, glProgramUniform3iv, glProgramUniform3ivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3FPROC, glProgramUniform3f); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3FPROC, glProgramUniform3f, glProgramUniform3fEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3FVPROC, glProgramUniform3fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3FVPROC, glProgramUniform3fv, glProgramUniform3fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3DPROC, glProgramUniform3d); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3DPROC, glProgramUniform3d, glProgramUniform3dEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3DVPROC, glProgramUniform3dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3DVPROC, glProgramUniform3dv, glProgramUniform3dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3UIPROC, glProgramUniform3ui); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3UIPROC, glProgramUniform3ui, glProgramUniform3uiEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM3UIVPROC, glProgramUniform3uiv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM3UIVPROC, glProgramUniform3uiv, glProgramUniform3uivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4IPROC, glProgramUniform4i); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4IPROC, glProgramUniform4i, glProgramUniform4iEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4IVPROC, glProgramUniform4iv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4IVPROC, glProgramUniform4iv, glProgramUniform4ivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4FPROC, glProgramUniform4f); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4FPROC, glProgramUniform4f, glProgramUniform4fEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4FVPROC, glProgramUniform4fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4FVPROC, glProgramUniform4fv, glProgramUniform4fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4DPROC, glProgramUniform4d); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4DPROC, glProgramUniform4d, glProgramUniform4dEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4DVPROC, glProgramUniform4dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4DVPROC, glProgramUniform4dv, glProgramUniform4dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4UIPROC, glProgramUniform4ui); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4UIPROC, glProgramUniform4ui, glProgramUniform4uiEXT); \
  HookExtension(PFNGLPROGRAMUNIFORM4UIVPROC, glProgramUniform4uiv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORM4UIVPROC, glProgramUniform4uiv, glProgramUniform4uivEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2FVPROC, glProgramUniformMatrix2fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2FVPROC, glProgramUniformMatrix2fv, glProgramUniformMatrix2fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3FVPROC, glProgramUniformMatrix3fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3FVPROC, glProgramUniformMatrix3fv, glProgramUniformMatrix3fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4FVPROC, glProgramUniformMatrix4fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4FVPROC, glProgramUniformMatrix4fv, glProgramUniformMatrix4fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2DVPROC, glProgramUniformMatrix2dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2DVPROC, glProgramUniformMatrix2dv, glProgramUniformMatrix2dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3DVPROC, glProgramUniformMatrix3dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3DVPROC, glProgramUniformMatrix3dv, glProgramUniformMatrix3dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4DVPROC, glProgramUniformMatrix4dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4DVPROC, glProgramUniformMatrix4dv, glProgramUniformMatrix4dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC, glProgramUniformMatrix2x3fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC, glProgramUniformMatrix2x3fv, glProgramUniformMatrix2x3fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC, glProgramUniformMatrix3x2fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC, glProgramUniformMatrix3x2fv, glProgramUniformMatrix3x2fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC, glProgramUniformMatrix2x4fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC, glProgramUniformMatrix2x4fv, glProgramUniformMatrix2x4fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC, glProgramUniformMatrix4x2fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC, glProgramUniformMatrix4x2fv, glProgramUniformMatrix4x2fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC, glProgramUniformMatrix3x4fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC, glProgramUniformMatrix3x4fv, glProgramUniformMatrix3x4fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC, glProgramUniformMatrix4x3fv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC, glProgramUniformMatrix4x3fv, glProgramUniformMatrix4x3fvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC, glProgramUniformMatrix2x3dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC, glProgramUniformMatrix2x3dv, glProgramUniformMatrix2x3dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC, glProgramUniformMatrix3x2dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC, glProgramUniformMatrix3x2dv, glProgramUniformMatrix3x2dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC, glProgramUniformMatrix2x4dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC, glProgramUniformMatrix2x4dv, glProgramUniformMatrix2x4dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC, glProgramUniformMatrix4x2dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC, glProgramUniformMatrix4x2dv, glProgramUniformMatrix4x2dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC, glProgramUniformMatrix3x4dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC, glProgramUniformMatrix3x4dv, glProgramUniformMatrix3x4dvEXT); \
  HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC, glProgramUniformMatrix4x3dv); \
  HookExtensionAlias(PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC, glProgramUniformMatrix4x3dv, glProgramUniformMatrix4x3dvEXT); \
  HookExtension(PFNGLVALIDATEPROGRAMPIPELINEPROC, glValidateProgramPipeline); \
  HookExtension(PFNGLGETPROGRAMPIPELINEINFOLOGPROC, glGetProgramPipelineInfoLog); \
  HookExtension(PFNGLVERTEXATTRIBL1DPROC, glVertexAttribL1d); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL1DPROC, glVertexAttribL1d, glVertexAttribL1dEXT); \
  HookExtension(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d, glVertexAttribL2dEXT); \
  HookExtension(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d, glVertexAttribL3dEXT); \
  HookExtension(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d, glVertexAttribL4dEXT); \
  HookExtension(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv, glVertexAttribL1dvEXT); \
  HookExtension(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv, glVertexAttribL2dvEXT); \
  HookExtension(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv, glVertexAttribL3dvEXT); \
  HookExtension(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv); \
  HookExtensionAlias(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv, glVertexAttribL4dvEXT); \
  HookExtension(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer); \
  HookExtensionAlias(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer, glVertexAttribLPointerEXT); \
  HookExtension(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv); \
  HookExtensionAlias(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv, glGetVertexAttribLdvEXT); \
  HookExtension(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv); \
  HookExtension(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf); \
  HookExtension(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv); \
  HookExtension(PFNGLSCISSORARRAYVPROC, glScissorArrayv); \
  HookExtension(PFNGLSCISSORINDEXEDPROC, glScissorIndexed); \
  HookExtension(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv); \
  HookExtension(PFNGLDEPTHRANGEARRAYVPROC, glDepthRangeArrayv); \
  HookExtension(PFNGLDEPTHRANGEINDEXEDPROC, glDepthRangeIndexed); \
  HookExtension(PFNGLGETFLOATI_VPROC, glGetFloati_v); \
  HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vEXT); \
  HookExtension(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v); \
  HookExtensionAlias(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v, glGetDoublei_vEXT); \
  HookExtension(PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, glDrawArraysInstancedBaseInstance); \
  HookExtensionAlias(PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, glDrawArraysInstancedBaseInstance, glDrawArraysInstancedBaseInstanceEXT); \
  HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC, glDrawElementsInstancedBaseInstance); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC, glDrawElementsInstancedBaseInstance, glDrawElementsInstancedBaseInstanceEXT); \
  HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC, glDrawElementsInstancedBaseVertexBaseInstance); \
  HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC, glDrawElementsInstancedBaseVertexBaseInstance, glDrawElementsInstancedBaseVertexBaseInstanceEXT); \
  HookExtension(PFNGLGETINTERNALFORMATIVPROC, glGetInternalformativ); \
  HookExtension(PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC, glGetActiveAtomicCounterBufferiv); \
  HookExtension(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture); \
  HookExtensionAlias(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture, glBindImageTextureEXT); \
  HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \
  HookExtensionAlias(PFNGLMEMORYBARRIERPROC, glMemoryBarrier, glMemoryBarrierEXT); \
  HookExtension(PFNGLTEXSTORAGE1DPROC, glTexStorage1D); \
  HookExtension(PFNGLTEXSTORAGE2DPROC, glTexStorage2D); \
  HookExtension(PFNGLTEXSTORAGE3DPROC, glTexStorage3D); \
  HookExtension(PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC, glDrawTransformFeedbackInstanced); \
  HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC, glDrawTransformFeedbackStreamInstanced); \
  HookExtension(PFNGLCLEARBUFFERDATAPROC, glClearBufferData); \
  HookExtension(PFNGLCLEARBUFFERSUBDATAPROC, glClearBufferSubData); \
  HookExtension(PFNGLDISPATCHCOMPUTEPROC, glDispatchCompute); \
  HookExtension(PFNGLDISPATCHCOMPUTEINDIRECTPROC, glDispatchComputeIndirect); \
  HookExtension(PFNGLCOPYIMAGESUBDATAPROC, glCopyImageSubData); \
  HookExtensionAlias(PFNGLCOPYIMAGESUBDATAPROC, glCopyImageSubData, glCopyImageSubDataEXT); \
  HookExtensionAlias(PFNGLCOPYIMAGESUBDATAPROC, glCopyImageSubData, glCopyImageSubDataOES); \
  HookExtension(PFNGLFRAMEBUFFERPARAMETERIPROC, glFramebufferParameteri); \
  HookExtension(PFNGLGETFRAMEBUFFERPARAMETERIVPROC, glGetFramebufferParameteriv); \
  HookExtension(PFNGLGETINTERNALFORMATI64VPROC, glGetInternalformati64v); \
  HookExtension(PFNGLINVALIDATETEXSUBIMAGEPROC, glInvalidateTexSubImage); \
  HookExtension(PFNGLINVALIDATETEXIMAGEPROC, glInvalidateTexImage); \
  HookExtension(PFNGLINVALIDATEBUFFERSUBDATAPROC, glInvalidateBufferSubData); \
  HookExtension(PFNGLINVALIDATEBUFFERDATAPROC, glInvalidateBufferData); \
  HookExtension(PFNGLINVALIDATEFRAMEBUFFERPROC, glInvalidateFramebuffer); \
  HookExtension(PFNGLINVALIDATESUBFRAMEBUFFERPROC, glInvalidateSubFramebuffer); \
  HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTPROC, glMultiDrawArraysIndirect); \
  HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTPROC, glMultiDrawElementsIndirect); \
  HookExtension(PFNGLGETPROGRAMINTERFACEIVPROC, glGetProgramInterfaceiv); \
  HookExtension(PFNGLGETPROGRAMRESOURCEINDEXPROC, glGetProgramResourceIndex); \
  HookExtension(PFNGLGETPROGRAMRESOURCENAMEPROC, glGetProgramResourceName); \
  HookExtension(PFNGLGETPROGRAMRESOURCEIVPROC, glGetProgramResourceiv); \
  HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONPROC, glGetProgramResourceLocation); \
  HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC, glGetProgramResourceLocationIndex); \
  HookExtension(PFNGLSHADERSTORAGEBLOCKBINDINGPROC, glShaderStorageBlockBinding); \
  HookExtension(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange); \
  HookExtensionAlias(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange, glTexBufferRangeEXT); \
  HookExtensionAlias(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange, glTexBufferRangeOES); \
  HookExtension(PFNGLTEXSTORAGE2DMULTISAMPLEPROC, glTexStorage2DMultisample); \
  HookExtension(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample); \
  HookExtensionAlias(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample, glTexStorage3DMultisampleOES); \
  HookExtension(PFNGLTEXTUREVIEWPROC, glTextureView); \
  HookExtension(PFNGLBINDVERTEXBUFFERPROC, glBindVertexBuffer); \
  HookExtension(PFNGLVERTEXATTRIBFORMATPROC, glVertexAttribFormat); \
  HookExtension(PFNGLVERTEXATTRIBIFORMATPROC, glVertexAttribIFormat); \
  HookExtension(PFNGLVERTEXATTRIBLFORMATPROC, glVertexAttribLFormat); \
  HookExtension(PFNGLVERTEXATTRIBBINDINGPROC, glVertexAttribBinding); \
  HookExtension(PFNGLVERTEXBINDINGDIVISORPROC, glVertexBindingDivisor); \
  HookExtension(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl); \
  HookExtensionAlias(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl, glDebugMessageControlARB); \
  HookExtensionAlias(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl, glDebugMessageControlKHR); \
  HookExtension(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert); \
  HookExtensionAlias(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert, glDebugMessageInsertARB); \
  HookExtensionAlias(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert, glDebugMessageInsertKHR); \
  HookExtension(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback); \
  HookExtensionAlias(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback, glDebugMessageCallbackARB); \
  HookExtensionAlias(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback, glDebugMessageCallbackKHR); \
  HookExtension(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog); \
  HookExtensionAlias(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog, glGetDebugMessageLogARB); \
  HookExtensionAlias(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog, glGetDebugMessageLogKHR); \
  HookExtension(PFNGLPUSHDEBUGGROUPPROC, glPushDebugGroup); \
  HookExtensionAlias(PFNGLPUSHDEBUGGROUPPROC, glPushDebugGroup, glPushDebugGroupKHR); \
  HookExtension(PFNGLPOPDEBUGGROUPPROC, glPopDebugGroup); \
  HookExtensionAlias(PFNGLPOPDEBUGGROUPPROC, glPopDebugGroup, glPopDebugGroupKHR); \
  HookExtension(PFNGLOBJECTLABELPROC, glObjectLabel); \
  HookExtensionAlias(PFNGLOBJECTLABELPROC, glObjectLabel, glObjectLabelKHR); \
  HookExtension(PFNGLGETOBJECTLABELPROC, glGetObjectLabel); \
  HookExtensionAlias(PFNGLGETOBJECTLABELPROC, glGetObjectLabel, glGetObjectLabelKHR); \
  HookExtension(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel); \
  HookExtensionAlias(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel, glObjectPtrLabelKHR); \
  HookExtension(PFNGLGETOBJECTPTRLABELPROC, glGetObjectPtrLabel); \
  HookExtensionAlias(PFNGLGETOBJECTPTRLABELPROC, glGetObjectPtrLabel, glGetObjectPtrLabelKHR); \
  HookExtension(PFNGLBUFFERSTORAGEPROC, glBufferStorage); \
  HookExtension(PFNGLCLEARTEXIMAGEPROC, glClearTexImage); \
  HookExtension(PFNGLCLEARTEXSUBIMAGEPROC, glClearTexSubImage); \
  HookExtension(PFNGLBINDBUFFERSBASEPROC, glBindBuffersBase); \
  HookExtension(PFNGLBINDBUFFERSRANGEPROC, glBindBuffersRange); \
  HookExtension(PFNGLBINDTEXTURESPROC, glBindTextures); \
  HookExtension(PFNGLBINDSAMPLERSPROC, glBindSamplers); \
  HookExtension(PFNGLBINDIMAGETEXTURESPROC, glBindImageTextures); \
  HookExtension(PFNGLBINDVERTEXBUFFERSPROC, glBindVertexBuffers); \
  HookExtension(PFNGLCLIPCONTROLPROC, glClipControl); \
  HookExtension(PFNGLCREATETRANSFORMFEEDBACKSPROC, glCreateTransformFeedbacks); \
  HookExtension(PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC, glTransformFeedbackBufferBase); \
  HookExtension(PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC, glTransformFeedbackBufferRange); \
  HookExtension(PFNGLGETTRANSFORMFEEDBACKIVPROC, glGetTransformFeedbackiv); \
  HookExtension(PFNGLGETTRANSFORMFEEDBACKI_VPROC, glGetTransformFeedbacki_v); \
  HookExtension(PFNGLGETTRANSFORMFEEDBACKI64_VPROC, glGetTransformFeedbacki64_v); \
  HookExtension(PFNGLCREATEBUFFERSPROC, glCreateBuffers); \
  HookExtension(PFNGLNAMEDBUFFERSTORAGEPROC, glNamedBufferStorage); \
  HookExtension(PFNGLNAMEDBUFFERDATAPROC, glNamedBufferData); \
  HookExtension(PFNGLNAMEDBUFFERSUBDATAPROC, glNamedBufferSubData); \
  HookExtension(PFNGLCOPYNAMEDBUFFERSUBDATAPROC, glCopyNamedBufferSubData); \
  HookExtension(PFNGLCLEARNAMEDBUFFERDATAPROC, glClearNamedBufferDataEXT); \
  HookExtensionAlias(PFNGLCLEARNAMEDBUFFERDATAPROC, glClearNamedBufferDataEXT, glClearNamedBufferData); \
  HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAPROC, glClearNamedBufferSubData); \
  HookExtension(PFNGLMAPNAMEDBUFFERPROC, glMapNamedBufferEXT); \
  HookExtensionAlias(PFNGLMAPNAMEDBUFFERPROC, glMapNamedBufferEXT, glMapNamedBuffer); \
  HookExtension(PFNGLMAPNAMEDBUFFERRANGEPROC, glMapNamedBufferRange); \
  HookExtension(PFNGLUNMAPNAMEDBUFFERPROC, glUnmapNamedBufferEXT); \
  HookExtensionAlias(PFNGLUNMAPNAMEDBUFFERPROC, glUnmapNamedBufferEXT, glUnmapNamedBuffer); \
  HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC, glFlushMappedNamedBufferRange); \
  HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT); \
  HookExtensionAlias(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT, glGetNamedBufferParameteriv); \
  HookExtension(PFNGLGETNAMEDBUFFERPARAMETERI64VPROC, glGetNamedBufferParameteri64v); \
  HookExtension(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointervEXT); \
  HookExtensionAlias(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointervEXT, glGetNamedBufferPointerv); \
  HookExtension(PFNGLGETNAMEDBUFFERSUBDATAPROC, glGetNamedBufferSubData); \
  HookExtension(PFNGLCREATEFRAMEBUFFERSPROC, glCreateFramebuffers); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC, glNamedFramebufferRenderbufferEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC, glNamedFramebufferRenderbufferEXT, glNamedFramebufferRenderbuffer); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC, glNamedFramebufferParameteriEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC, glNamedFramebufferParameteriEXT, glNamedFramebufferParameteri); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTextureEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTextureEXT, glNamedFramebufferTexture); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC, glNamedFramebufferTextureLayerEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC, glNamedFramebufferTextureLayerEXT, glNamedFramebufferTextureLayer); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC, glFramebufferDrawBufferEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC, glFramebufferDrawBufferEXT, glNamedFramebufferDrawBuffer); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC, glFramebufferDrawBuffersEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC, glFramebufferDrawBuffersEXT, glNamedFramebufferDrawBuffers); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC, glFramebufferReadBufferEXT); \
  HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC, glFramebufferReadBufferEXT, glNamedFramebufferReadBuffer); \
  HookExtension(PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC, glInvalidateNamedFramebufferData); \
  HookExtension(PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC, glInvalidateNamedFramebufferSubData); \
  HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERIVPROC, glClearNamedFramebufferiv); \
  HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC, glClearNamedFramebufferuiv); \
  HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERFVPROC, glClearNamedFramebufferfv); \
  HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERFIPROC, glClearNamedFramebufferfi); \
  HookExtension(PFNGLBLITNAMEDFRAMEBUFFERPROC, glBlitNamedFramebuffer); \
  HookExtension(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC, glCheckNamedFramebufferStatusEXT); \
  HookExtensionAlias(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC, glCheckNamedFramebufferStatusEXT, glCheckNamedFramebufferStatus); \
  HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT); \
  HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetFramebufferParameterivEXT); \
  HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetNamedFramebufferParameteriv); \
  HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT); \
  HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT, glGetNamedFramebufferAttachmentParameteriv); \
  HookExtension(PFNGLCREATERENDERBUFFERSPROC, glCreateRenderbuffers); \
  HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEPROC, glNamedRenderbufferStorageEXT); \
  HookExtensionAlias(PFNGLNAMEDRENDERBUFFERSTORAGEPROC, glNamedRenderbufferStorageEXT, glNamedRenderbufferStorage); \
  HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC, glNamedRenderbufferStorageMultisampleEXT); \
  HookExtensionAlias(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC, glNamedRenderbufferStorageMultisampleEXT, glNamedRenderbufferStorageMultisample); \
  HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT); \
  HookExtensionAlias(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT, glGetNamedRenderbufferParameteriv); \
  HookExtension(PFNGLCREATETEXTURESPROC, glCreateTextures); \
  HookExtension(PFNGLTEXTUREBUFFERPROC, glTextureBuffer); \
  HookExtension(PFNGLTEXTUREBUFFERRANGEPROC, glTextureBufferRange); \
  HookExtension(PFNGLTEXTURESTORAGE1DPROC, glTextureStorage1D); \
  HookExtension(PFNGLTEXTURESTORAGE2DPROC, glTextureStorage2D); \
  HookExtension(PFNGLTEXTURESTORAGE3DPROC, glTextureStorage3D); \
  HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC, glTextureStorage2DMultisample); \
  HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC, glTextureStorage3DMultisample); \
  HookExtension(PFNGLTEXTURESUBIMAGE1DPROC, glTextureSubImage1D); \
  HookExtension(PFNGLTEXTURESUBIMAGE2DPROC, glTextureSubImage2D); \
  HookExtension(PFNGLTEXTURESUBIMAGE3DPROC, glTextureSubImage3D); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC, glCompressedTextureSubImage1D); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC, glCompressedTextureSubImage2D); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC, glCompressedTextureSubImage3D); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE1DPROC, glCopyTextureSubImage1D); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE2DPROC, glCopyTextureSubImage2D); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE3DPROC, glCopyTextureSubImage3D); \
  HookExtension(PFNGLTEXTUREPARAMETERFPROC, glTextureParameterf); \
  HookExtension(PFNGLTEXTUREPARAMETERFVPROC, glTextureParameterfv); \
  HookExtension(PFNGLTEXTUREPARAMETERIPROC, glTextureParameteri); \
  HookExtension(PFNGLTEXTUREPARAMETERIIVPROC, glTextureParameterIiv); \
  HookExtension(PFNGLTEXTUREPARAMETERIUIVPROC, glTextureParameterIuiv); \
  HookExtension(PFNGLTEXTUREPARAMETERIVPROC, glTextureParameteriv); \
  HookExtension(PFNGLGENERATETEXTUREMIPMAPPROC, glGenerateTextureMipmap); \
  HookExtension(PFNGLBINDTEXTUREUNITPROC, glBindTextureUnit); \
  HookExtension(PFNGLGETTEXTUREIMAGEPROC, glGetTextureImage); \
  HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC, glGetCompressedTextureImage); \
  HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVPROC, glGetTextureLevelParameterfv); \
  HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVPROC, glGetTextureLevelParameteriv); \
  HookExtension(PFNGLGETTEXTUREPARAMETERFVPROC, glGetTextureParameterfv); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIIVPROC, glGetTextureParameterIiv); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIUIVPROC, glGetTextureParameterIuiv); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIVPROC, glGetTextureParameteriv); \
  HookExtension(PFNGLCREATEVERTEXARRAYSPROC, glCreateVertexArrays); \
  HookExtension(PFNGLDISABLEVERTEXARRAYATTRIBPROC, glDisableVertexArrayAttribEXT); \
  HookExtensionAlias(PFNGLDISABLEVERTEXARRAYATTRIBPROC, glDisableVertexArrayAttribEXT, glDisableVertexArrayAttrib); \
  HookExtension(PFNGLENABLEVERTEXARRAYATTRIBPROC, glEnableVertexArrayAttribEXT); \
  HookExtensionAlias(PFNGLENABLEVERTEXARRAYATTRIBPROC, glEnableVertexArrayAttribEXT, glEnableVertexArrayAttrib); \
  HookExtension(PFNGLVERTEXARRAYELEMENTBUFFERPROC, glVertexArrayElementBuffer); \
  HookExtension(PFNGLVERTEXARRAYVERTEXBUFFERPROC, glVertexArrayBindVertexBufferEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYVERTEXBUFFERPROC, glVertexArrayBindVertexBufferEXT, glVertexArrayVertexBuffer); \
  HookExtension(PFNGLVERTEXARRAYVERTEXBUFFERSPROC, glVertexArrayVertexBuffers); \
  HookExtension(PFNGLVERTEXARRAYATTRIBBINDINGPROC, glVertexArrayVertexAttribBindingEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYATTRIBBINDINGPROC, glVertexArrayVertexAttribBindingEXT, glVertexArrayAttribBinding); \
  HookExtension(PFNGLVERTEXARRAYATTRIBFORMATPROC, glVertexArrayVertexAttribFormatEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYATTRIBFORMATPROC, glVertexArrayVertexAttribFormatEXT, glVertexArrayAttribFormat); \
  HookExtension(PFNGLVERTEXARRAYATTRIBIFORMATPROC, glVertexArrayVertexAttribIFormatEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYATTRIBIFORMATPROC, glVertexArrayVertexAttribIFormatEXT, glVertexArrayAttribIFormat); \
  HookExtension(PFNGLVERTEXARRAYATTRIBLFORMATPROC, glVertexArrayVertexAttribLFormatEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYATTRIBLFORMATPROC, glVertexArrayVertexAttribLFormatEXT, glVertexArrayAttribLFormat); \
  HookExtension(PFNGLVERTEXARRAYBINDINGDIVISORPROC, glVertexArrayVertexBindingDivisorEXT); \
  HookExtensionAlias(PFNGLVERTEXARRAYBINDINGDIVISORPROC, glVertexArrayVertexBindingDivisorEXT, glVertexArrayBindingDivisor); \
  HookExtension(PFNGLGETVERTEXARRAYIVPROC, glGetVertexArrayiv); \
  HookExtension(PFNGLGETVERTEXARRAYINDEXEDIVPROC, glGetVertexArrayIndexediv); \
  HookExtension(PFNGLGETVERTEXARRAYINDEXED64IVPROC, glGetVertexArrayIndexed64iv); \
  HookExtension(PFNGLCREATESAMPLERSPROC, glCreateSamplers); \
  HookExtension(PFNGLCREATEPROGRAMPIPELINESPROC, glCreateProgramPipelines); \
  HookExtension(PFNGLCREATEQUERIESPROC, glCreateQueries); \
  HookExtension(PFNGLGETQUERYBUFFEROBJECTI64VPROC, glGetQueryBufferObjecti64v); \
  HookExtension(PFNGLGETQUERYBUFFEROBJECTIVPROC, glGetQueryBufferObjectiv); \
  HookExtension(PFNGLGETQUERYBUFFEROBJECTUI64VPROC, glGetQueryBufferObjectui64v); \
  HookExtension(PFNGLGETQUERYBUFFEROBJECTUIVPROC, glGetQueryBufferObjectuiv); \
  HookExtension(PFNGLMEMORYBARRIERBYREGIONPROC, glMemoryBarrierByRegion); \
  HookExtension(PFNGLGETTEXTURESUBIMAGEPROC, glGetTextureSubImage); \
  HookExtension(PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC, glGetCompressedTextureSubImage); \
  HookExtension(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus); \
  HookExtensionAlias(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus, glGetGraphicsResetStatusARB); \
  HookExtension(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage); \
  HookExtensionAlias(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage, glGetnCompressedTexImageARB); \
  HookExtension(PFNGLGETNTEXIMAGEPROC, glGetnTexImage); \
  HookExtensionAlias(PFNGLGETNTEXIMAGEPROC, glGetnTexImage, glGetnTexImageARB); \
  HookExtension(PFNGLGETNUNIFORMDVPROC, glGetnUniformdv); \
  HookExtensionAlias(PFNGLGETNUNIFORMDVPROC, glGetnUniformdv, glGetnUniformdvARB); \
  HookExtension(PFNGLGETNUNIFORMFVPROC, glGetnUniformfv); \
  HookExtensionAlias(PFNGLGETNUNIFORMFVPROC, glGetnUniformfv, glGetnUniformfvARB); \
  HookExtension(PFNGLGETNUNIFORMIVPROC, glGetnUniformiv); \
  HookExtensionAlias(PFNGLGETNUNIFORMIVPROC, glGetnUniformiv, glGetnUniformivARB); \
  HookExtension(PFNGLGETNUNIFORMUIVPROC, glGetnUniformuiv); \
  HookExtensionAlias(PFNGLGETNUNIFORMUIVPROC, glGetnUniformuiv, glGetnUniformuivARB); \
  HookExtension(PFNGLREADNPIXELSPROC, glReadnPixels); \
  HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsARB); \
  HookExtension(PFNGLTEXTUREBARRIERPROC, glTextureBarrier); \
  HookExtension(PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC, glDispatchComputeGroupSizeARB); \
  HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC, glMultiDrawArraysIndirectCountARB); \
  HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC, glMultiDrawElementsIndirectCountARB); \
  HookExtension(PFNGLNAMEDSTRINGARBPROC, glNamedStringARB); \
  HookExtension(PFNGLDELETENAMEDSTRINGARBPROC, glDeleteNamedStringARB); \
  HookExtension(PFNGLCOMPILESHADERINCLUDEARBPROC, glCompileShaderIncludeARB); \
  HookExtension(PFNGLISNAMEDSTRINGARBPROC, glIsNamedStringARB); \
  HookExtension(PFNGLGETNAMEDSTRINGARBPROC, glGetNamedStringARB); \
  HookExtension(PFNGLGETNAMEDSTRINGIVARBPROC, glGetNamedStringivARB); \
  HookExtension(PFNGLBLENDBARRIERKHRPROC, glBlendBarrierKHR); \
  HookExtension(PFNGLLABELOBJECTEXTPROC, glLabelObjectEXT); \
  HookExtension(PFNGLGETOBJECTLABELEXTPROC, glGetObjectLabelEXT); \
  HookExtension(PFNGLINSERTEVENTMARKEREXTPROC, glInsertEventMarkerEXT); \
  HookExtension(PFNGLPUSHGROUPMARKEREXTPROC, glPushGroupMarkerEXT); \
  HookExtension(PFNGLPOPGROUPMARKEREXTPROC, glPopGroupMarkerEXT); \
  HookExtension(PFNGLDEPTHBOUNDSEXTPROC, glDepthBoundsEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERFEXTPROC, glTextureParameterfEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERFVEXTPROC, glTextureParameterfvEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERIEXTPROC, glTextureParameteriEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERIVEXTPROC, glTextureParameterivEXT); \
  HookExtension(PFNGLTEXTUREIMAGE1DEXTPROC, glTextureImage1DEXT); \
  HookExtension(PFNGLTEXTUREIMAGE2DEXTPROC, glTextureImage2DEXT); \
  HookExtension(PFNGLTEXTURESUBIMAGE1DEXTPROC, glTextureSubImage1DEXT); \
  HookExtension(PFNGLTEXTURESUBIMAGE2DEXTPROC, glTextureSubImage2DEXT); \
  HookExtension(PFNGLCOPYTEXTUREIMAGE1DEXTPROC, glCopyTextureImage1DEXT); \
  HookExtension(PFNGLCOPYTEXTUREIMAGE2DEXTPROC, glCopyTextureImage2DEXT); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC, glCopyTextureSubImage1DEXT); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC, glCopyTextureSubImage2DEXT); \
  HookExtension(PFNGLGETTEXTUREIMAGEEXTPROC, glGetTextureImageEXT); \
  HookExtension(PFNGLGETTEXTUREPARAMETERFVEXTPROC, glGetTextureParameterfvEXT); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIVEXTPROC, glGetTextureParameterivEXT); \
  HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC, glGetTextureLevelParameterfvEXT); \
  HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC, glGetTextureLevelParameterivEXT); \
  HookExtension(PFNGLTEXTUREIMAGE3DEXTPROC, glTextureImage3DEXT); \
  HookExtension(PFNGLTEXTURESUBIMAGE3DEXTPROC, glTextureSubImage3DEXT); \
  HookExtension(PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC, glCopyTextureSubImage3DEXT); \
  HookExtension(PFNGLBINDMULTITEXTUREEXTPROC, glBindMultiTextureEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERIEXTPROC, glMultiTexParameteriEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERIVEXTPROC, glMultiTexParameterivEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERFEXTPROC, glMultiTexParameterfEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERFVEXTPROC, glMultiTexParameterfvEXT); \
  HookExtension(PFNGLMULTITEXIMAGE1DEXTPROC, glMultiTexImage1DEXT); \
  HookExtension(PFNGLMULTITEXIMAGE2DEXTPROC, glMultiTexImage2DEXT); \
  HookExtension(PFNGLMULTITEXSUBIMAGE1DEXTPROC, glMultiTexSubImage1DEXT); \
  HookExtension(PFNGLMULTITEXSUBIMAGE2DEXTPROC, glMultiTexSubImage2DEXT); \
  HookExtension(PFNGLCOPYMULTITEXIMAGE1DEXTPROC, glCopyMultiTexImage1DEXT); \
  HookExtension(PFNGLCOPYMULTITEXIMAGE2DEXTPROC, glCopyMultiTexImage2DEXT); \
  HookExtension(PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC, glCopyMultiTexSubImage1DEXT); \
  HookExtension(PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC, glCopyMultiTexSubImage2DEXT); \
  HookExtension(PFNGLGETMULTITEXIMAGEEXTPROC, glGetMultiTexImageEXT); \
  HookExtension(PFNGLGETMULTITEXPARAMETERFVEXTPROC, glGetMultiTexParameterfvEXT); \
  HookExtension(PFNGLGETMULTITEXPARAMETERIVEXTPROC, glGetMultiTexParameterivEXT); \
  HookExtension(PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC, glGetMultiTexLevelParameterfvEXT); \
  HookExtension(PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC, glGetMultiTexLevelParameterivEXT); \
  HookExtension(PFNGLMULTITEXIMAGE3DEXTPROC, glMultiTexImage3DEXT); \
  HookExtension(PFNGLMULTITEXSUBIMAGE3DEXTPROC, glMultiTexSubImage3DEXT); \
  HookExtension(PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC, glCopyMultiTexSubImage3DEXT); \
  HookExtension(PFNGLGETFLOATINDEXEDVEXTPROC, glGetFloatIndexedvEXT); \
  HookExtension(PFNGLGETDOUBLEINDEXEDVEXTPROC, glGetDoubleIndexedvEXT); \
  HookExtension(PFNGLGETPOINTERINDEXEDVEXTPROC, glGetPointerIndexedvEXT); \
  HookExtension(PFNGLGETINTEGERINDEXEDVEXTPROC, glGetIntegerIndexedvEXT); \
  HookExtension(PFNGLGETBOOLEANINDEXEDVEXTPROC, glGetBooleanIndexedvEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC, glCompressedTextureImage3DEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC, glCompressedTextureImage2DEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC, glCompressedTextureImage1DEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC, glCompressedTextureSubImage3DEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC, glCompressedTextureSubImage2DEXT); \
  HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC, glCompressedTextureSubImage1DEXT); \
  HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC, glGetCompressedTextureImageEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC, glCompressedMultiTexImage3DEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC, glCompressedMultiTexImage2DEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC, glCompressedMultiTexImage1DEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC, glCompressedMultiTexSubImage3DEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC, glCompressedMultiTexSubImage2DEXT); \
  HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC, glCompressedMultiTexSubImage1DEXT); \
  HookExtension(PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC, glGetCompressedMultiTexImageEXT); \
  HookExtension(PFNGLNAMEDBUFFERDATAEXTPROC, glNamedBufferDataEXT); \
  HookExtension(PFNGLNAMEDBUFFERSUBDATAEXTPROC, glNamedBufferSubDataEXT); \
  HookExtension(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT); \
  HookExtension(PFNGLTEXTUREBUFFEREXTPROC, glTextureBufferEXT); \
  HookExtension(PFNGLMULTITEXBUFFEREXTPROC, glMultiTexBufferEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERIIVEXTPROC, glTextureParameterIivEXT); \
  HookExtension(PFNGLTEXTUREPARAMETERIUIVEXTPROC, glTextureParameterIuivEXT); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIIVEXTPROC, glGetTextureParameterIivEXT); \
  HookExtension(PFNGLGETTEXTUREPARAMETERIUIVEXTPROC, glGetTextureParameterIuivEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERIIVEXTPROC, glMultiTexParameterIivEXT); \
  HookExtension(PFNGLMULTITEXPARAMETERIUIVEXTPROC, glMultiTexParameterIuivEXT); \
  HookExtension(PFNGLGETMULTITEXPARAMETERIIVEXTPROC, glGetMultiTexParameterIivEXT); \
  HookExtension(PFNGLGETMULTITEXPARAMETERIUIVEXTPROC, glGetMultiTexParameterIuivEXT); \
  HookExtension(PFNGLGETPOINTERI_VEXTPROC, glGetPointeri_vEXT); \
  HookExtension(PFNGLGETNAMEDPROGRAMIVEXTPROC, glGetNamedProgramivEXT); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC, glNamedFramebufferTexture1DEXT); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC, glNamedFramebufferTexture2DEXT); \
  HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC, glNamedFramebufferTexture3DEXT); \
  HookExtension(PFNGLGENERATETEXTUREMIPMAPEXTPROC, glGenerateTextureMipmapEXT); \
  HookExtension(PFNGLGENERATEMULTITEXMIPMAPEXTPROC, glGenerateMultiTexMipmapEXT); \
  HookExtension(PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC, glNamedCopyBufferSubDataEXT); \
  HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC, glVertexArrayVertexAttribOffsetEXT); \
  HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC, glVertexArrayVertexAttribIOffsetEXT); \
  HookExtension(PFNGLGETVERTEXARRAYINTEGERVEXTPROC, glGetVertexArrayIntegervEXT); \
  HookExtension(PFNGLGETVERTEXARRAYPOINTERVEXTPROC, glGetVertexArrayPointervEXT); \
  HookExtension(PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC, glGetVertexArrayIntegeri_vEXT); \
  HookExtension(PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC, glGetVertexArrayPointeri_vEXT); \
  HookExtension(PFNGLMAPNAMEDBUFFERRANGEEXTPROC, glMapNamedBufferRangeEXT); \
  HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC, glFlushMappedNamedBufferRangeEXT); \
  HookExtension(PFNGLNAMEDBUFFERSTORAGEEXTPROC, glNamedBufferStorageEXT); \
  HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC, glClearNamedBufferSubDataEXT); \
  HookExtension(PFNGLTEXTUREBUFFERRANGEEXTPROC, glTextureBufferRangeEXT); \
  HookExtension(PFNGLTEXTURESTORAGE1DEXTPROC, glTextureStorage1DEXT); \
  HookExtension(PFNGLTEXTURESTORAGE2DEXTPROC, glTextureStorage2DEXT); \
  HookExtension(PFNGLTEXTURESTORAGE3DEXTPROC, glTextureStorage3DEXT); \
  HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC, glTextureStorage2DMultisampleEXT); \
  HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC, glTextureStorage3DMultisampleEXT); \
  HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \
  HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \
  HookExtension(PFNGLPOLYGONOFFSETCLAMPEXTPROC, glPolygonOffsetClampEXT); \
  HookExtension(PFNGLRASTERSAMPLESEXTPROC, glRasterSamplesEXT); \
  HookExtension(PFNGLFRAMETERMINATORGREMEDYPROC, glFrameTerminatorGREMEDY); \
  HookExtension(PFNGLSTRINGMARKERGREMEDYPROC, glStringMarkerGREMEDY); \
  HookExtension(PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC, glFramebufferTextureMultiviewOVR); \
  HookExtension(PFNGLBLENDBARRIERPROC, glBlendBarrier); \
  HookExtension(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox); \
  HookExtensionAlias(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox, glPrimitiveBoundingBoxEXT); \
  HookExtensionAlias(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox, glPrimitiveBoundingBoxOES); \
  HookExtension(PFNGLDISCARDFRAMEBUFFEREXTPROC, glDiscardFramebufferEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC, glFramebufferTexture2DMultisampleEXT); \
  HookExtension(PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC, glFramebufferTextureMultisampleMultiviewOVR); \
  HookExtension(PFNWGLDXSETRESOURCESHAREHANDLENVPROC, wglDXSetResourceShareHandleNV); \
  HookExtension(PFNWGLDXOPENDEVICENVPROC, wglDXOpenDeviceNV); \
  HookExtension(PFNWGLDXCLOSEDEVICENVPROC, wglDXCloseDeviceNV); \
  HookExtension(PFNWGLDXREGISTEROBJECTNVPROC, wglDXRegisterObjectNV); \
  HookExtension(PFNWGLDXUNREGISTEROBJECTNVPROC, wglDXUnregisterObjectNV); \
  HookExtension(PFNWGLDXOBJECTACCESSNVPROC, wglDXObjectAccessNV); \
  HookExtension(PFNWGLDXLOCKOBJECTSNVPROC, wglDXLockObjectsNV); \
  HookExtension(PFNWGLDXUNLOCKOBJECTSNVPROC, wglDXUnlockObjectsNV); \
  HookExtension(PFNGLCULLFACEPROC, glCullFace); \
  HookExtension(PFNGLFRONTFACEPROC, glFrontFace); \
  HookExtension(PFNGLHINTPROC, glHint); \
  HookExtension(PFNGLLINEWIDTHPROC, glLineWidth); \
  HookExtension(PFNGLPOINTSIZEPROC, glPointSize); \
  HookExtension(PFNGLPOLYGONMODEPROC, glPolygonMode); \
  HookExtension(PFNGLSCISSORPROC, glScissor); \
  HookExtension(PFNGLTEXPARAMETERFPROC, glTexParameterf); \
  HookExtension(PFNGLTEXPARAMETERFVPROC, glTexParameterfv); \
  HookExtension(PFNGLTEXPARAMETERIPROC, glTexParameteri); \
  HookExtension(PFNGLTEXPARAMETERIVPROC, glTexParameteriv); \
  HookExtension(PFNGLTEXIMAGE1DPROC, glTexImage1D); \
  HookExtension(PFNGLTEXIMAGE2DPROC, glTexImage2D); \
  HookExtension(PFNGLDRAWBUFFERPROC, glDrawBuffer); \
  HookExtension(PFNGLCLEARPROC, glClear); \
  HookExtension(PFNGLCLEARCOLORPROC, glClearColor); \
  HookExtension(PFNGLCLEARSTENCILPROC, glClearStencil); \
  HookExtension(PFNGLCLEARDEPTHPROC, glClearDepth); \
  HookExtension(PFNGLSTENCILMASKPROC, glStencilMask); \
  HookExtension(PFNGLCOLORMASKPROC, glColorMask); \
  HookExtension(PFNGLDEPTHMASKPROC, glDepthMask); \
  HookExtension(PFNGLDISABLEPROC, glDisable); \
  HookExtension(PFNGLENABLEPROC, glEnable); \
  HookExtension(PFNGLFINISHPROC, glFinish); \
  HookExtension(PFNGLFLUSHPROC, glFlush); \
  HookExtension(PFNGLBLENDFUNCPROC, glBlendFunc); \
  HookExtension(PFNGLLOGICOPPROC, glLogicOp); \
  HookExtension(PFNGLSTENCILFUNCPROC, glStencilFunc); \
  HookExtension(PFNGLSTENCILOPPROC, glStencilOp); \
  HookExtension(PFNGLDEPTHFUNCPROC, glDepthFunc); \
  HookExtension(PFNGLPIXELSTOREFPROC, glPixelStoref); \
  HookExtension(PFNGLPIXELSTOREIPROC, glPixelStorei); \
  HookExtension(PFNGLREADBUFFERPROC, glReadBuffer); \
  HookExtension(PFNGLREADPIXELSPROC, glReadPixels); \
  HookExtension(PFNGLGETBOOLEANVPROC, glGetBooleanv); \
  HookExtension(PFNGLGETDOUBLEVPROC, glGetDoublev); \
  HookExtension(PFNGLGETERRORPROC, glGetError); \
  HookExtension(PFNGLGETFLOATVPROC, glGetFloatv); \
  HookExtension(PFNGLGETINTEGERVPROC, glGetIntegerv); \
  HookExtension(PFNGLGETSTRINGPROC, glGetString); \
  HookExtension(PFNGLGETTEXIMAGEPROC, glGetTexImage); \
  HookExtension(PFNGLGETTEXPARAMETERFVPROC, glGetTexParameterfv); \
  HookExtension(PFNGLGETTEXPARAMETERIVPROC, glGetTexParameteriv); \
  HookExtension(PFNGLGETTEXLEVELPARAMETERFVPROC, glGetTexLevelParameterfv); \
  HookExtension(PFNGLGETTEXLEVELPARAMETERIVPROC, glGetTexLevelParameteriv); \
  HookExtension(PFNGLISENABLEDPROC, glIsEnabled); \
  HookExtension(PFNGLDEPTHRANGEPROC, glDepthRange); \
  HookExtension(PFNGLVIEWPORTPROC, glViewport); \
  HookExtension(PFNGLDRAWARRAYSPROC, glDrawArrays); \
  HookExtension(PFNGLDRAWELEMENTSPROC, glDrawElements); \
  HookExtension(PFNGLGETPOINTERVPROC, glGetPointerv); \
  HookExtension(PFNGLPOLYGONOFFSETPROC, glPolygonOffset); \
  HookExtension(PFNGLCOPYTEXIMAGE1DPROC, glCopyTexImage1D); \
  HookExtension(PFNGLCOPYTEXIMAGE2DPROC, glCopyTexImage2D); \
  HookExtension(PFNGLCOPYTEXSUBIMAGE1DPROC, glCopyTexSubImage1D); \
  HookExtension(PFNGLCOPYTEXSUBIMAGE2DPROC, glCopyTexSubImage2D); \
  HookExtension(PFNGLTEXSUBIMAGE1DPROC, glTexSubImage1D); \
  HookExtension(PFNGLTEXSUBIMAGE2DPROC, glTexSubImage2D); \
  HookExtension(PFNGLBINDTEXTUREPROC, glBindTexture); \
  HookExtension(PFNGLDELETETEXTURESPROC, glDeleteTextures); \
  HookExtension(PFNGLGENTEXTURESPROC, glGenTextures); \
  HookExtension(PFNGLISTEXTUREPROC, glIsTexture); \



// dllexport functions
#define DefineDLLExportHooks() \
    HookWrapper1(void, glCullFace, GLenum, mode); \
    HookWrapper1(void, glFrontFace, GLenum, mode); \
    HookWrapper2(void, glHint, GLenum, target, GLenum, mode); \
    HookWrapper1(void, glLineWidth, GLfloat, width); \
    HookWrapper1(void, glPointSize, GLfloat, size); \
    HookWrapper2(void, glPolygonMode, GLenum, face, GLenum, mode); \
    HookWrapper4(void, glScissor, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glTexParameterf, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glTexParameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glTexParameteri, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glTexParameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper8(void, glTexImage1D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTexImage2D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper1(void, glDrawBuffer, GLenum, buf); \
    HookWrapper1(void, glClear, GLbitfield, mask); \
    HookWrapper4(void, glClearColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glClearStencil, GLint, s); \
    HookWrapper1(void, glClearDepth, GLdouble, depth); \
    HookWrapper1(void, glStencilMask, GLuint, mask); \
    HookWrapper4(void, glColorMask, GLboolean, red, GLboolean, green, GLboolean, blue, GLboolean, alpha); \
    HookWrapper1(void, glDepthMask, GLboolean, flag); \
    HookWrapper1(void, glDisable, GLenum, cap); \
    HookWrapper1(void, glEnable, GLenum, cap); \
    HookWrapper0(void, glFinish); \
    HookWrapper0(void, glFlush); \
    HookWrapper2(void, glBlendFunc, GLenum, sfactor, GLenum, dfactor); \
    HookWrapper1(void, glLogicOp, GLenum, opcode); \
    HookWrapper3(void, glStencilFunc, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper3(void, glStencilOp, GLenum, fail, GLenum, zfail, GLenum, zpass); \
    HookWrapper1(void, glDepthFunc, GLenum, func); \
    HookWrapper2(void, glPixelStoref, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glPixelStorei, GLenum, pname, GLint, param); \
    HookWrapper1(void, glReadBuffer, GLenum, src); \
    HookWrapper7(void, glReadPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper2(void, glGetBooleanv, GLenum, pname, GLboolean *, data); \
    HookWrapper2(void, glGetDoublev, GLenum, pname, GLdouble *, data); \
    HookWrapper0(GLenum, glGetError); \
    HookWrapper2(void, glGetFloatv, GLenum, pname, GLfloat *, data); \
    HookWrapper2(void, glGetIntegerv, GLenum, pname, GLint *, data); \
    HookWrapper1(const GLubyte *, glGetString, GLenum, name); \
    HookWrapper5(void, glGetTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper3(void, glGetTexParameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetTexParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetTexLevelParameterfv, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTexLevelParameteriv, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glIsEnabled, GLenum, cap); \
    HookWrapper2(void, glDepthRange, GLdouble, near, GLdouble, far); \
    HookWrapper4(void, glViewport, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glDrawArrays, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper4(void, glDrawElements, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices); \
    HookWrapper2(void, glGetPointerv, GLenum, pname, void **, params); \
    HookWrapper2(void, glPolygonOffset, GLfloat, factor, GLfloat, units); \
    HookWrapper7(void, glCopyTexImage1D, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper8(void, glCopyTexImage2D, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper6(void, glCopyTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glCopyTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper7(void, glTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper2(void, glBindTexture, GLenum, target, GLuint, texture); \
    HookWrapper2(void, glDeleteTextures, GLsizei, n, const GLuint *, textures); \
    HookWrapper2(void, glGenTextures, GLsizei, n, GLuint *, textures); \
    HookWrapper1(GLboolean, glIsTexture, GLuint, texture); \



// gl extensions
#define DefineGLExtensionHooks() \
    HookWrapper6(void, glDrawRangeElements, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices); \
    HookWrapper10(void, glTexImage3D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, glTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glCopyTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper1(void, glActiveTexture, GLenum, texture); \
    HookWrapper2(void, glSampleCoverage, GLfloat, value, GLboolean, invert); \
    HookWrapper9(void, glCompressedTexImage3D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper8(void, glCompressedTexImage2D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper7(void, glCompressedTexImage1D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper11(void, glCompressedTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper9(void, glCompressedTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper7(void, glCompressedTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper3(void, glGetCompressedTexImage, GLenum, target, GLint, level, void *, img); \
    HookWrapper4(void, glBlendFuncSeparate, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper4(void, glMultiDrawArrays, GLenum, mode, const GLint *, first, const GLsizei *, count, GLsizei, drawcount); \
    HookWrapper5(void, glMultiDrawElements, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, drawcount); \
    HookWrapper2(void, glPointParameterf, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glPointParameterfv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glPointParameteri, GLenum, pname, GLint, param); \
    HookWrapper2(void, glPointParameteriv, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glBlendColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glBlendEquation, GLenum, mode); \
    HookWrapper2(void, glGenQueries, GLsizei, n, GLuint *, ids); \
    HookWrapper2(void, glDeleteQueries, GLsizei, n, const GLuint *, ids); \
    HookWrapper1(GLboolean, glIsQuery, GLuint, id); \
    HookWrapper2(void, glBeginQuery, GLenum, target, GLuint, id); \
    HookWrapper1(void, glEndQuery, GLenum, target); \
    HookWrapper3(void, glGetQueryiv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetQueryObjectiv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetQueryObjectuiv, GLuint, id, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glBindBuffer, GLenum, target, GLuint, buffer); \
    HookWrapper2(void, glDeleteBuffers, GLsizei, n, const GLuint *, buffers); \
    HookWrapper2(void, glGenBuffers, GLsizei, n, GLuint *, buffers); \
    HookWrapper1(GLboolean, glIsBuffer, GLuint, buffer); \
    HookWrapper4(void, glBufferData, GLenum, target, GLsizeiptr, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, const void *, data); \
    HookWrapper4(void, glGetBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, void *, data); \
    HookWrapper2(void *, glMapBuffer, GLenum, target, GLenum, access); \
    HookWrapper1(GLboolean, glUnmapBuffer, GLenum, target); \
    HookWrapper3(void, glGetBufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetBufferPointerv, GLenum, target, GLenum, pname, void **, params); \
    HookWrapper2(void, glBlendEquationSeparate, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper2(void, glDrawBuffers, GLsizei, n, const GLenum *, bufs); \
    HookWrapper4(void, glStencilOpSeparate, GLenum, face, GLenum, sfail, GLenum, dpfail, GLenum, dppass); \
    HookWrapper4(void, glStencilFuncSeparate, GLenum, face, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper2(void, glStencilMaskSeparate, GLenum, face, GLuint, mask); \
    HookWrapper2(void, glAttachShader, GLuint, program, GLuint, shader); \
    HookWrapper3(void, glBindAttribLocation, GLuint, program, GLuint, index, const GLchar *, name); \
    HookWrapper1(void, glCompileShader, GLuint, shader); \
    HookWrapper0(GLuint, glCreateProgram); \
    HookWrapper1(GLuint, glCreateShader, GLenum, type); \
    HookWrapper1(void, glDeleteProgram, GLuint, program); \
    HookWrapper1(void, glDeleteShader, GLuint, shader); \
    HookWrapper2(void, glDetachShader, GLuint, program, GLuint, shader); \
    HookWrapper1(void, glDisableVertexAttribArray, GLuint, index); \
    HookWrapper1(void, glEnableVertexAttribArray, GLuint, index); \
    HookWrapper7(void, glGetActiveAttrib, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \
    HookWrapper7(void, glGetActiveUniform, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \
    HookWrapper4(void, glGetAttachedShaders, GLuint, program, GLsizei, maxCount, GLsizei *, count, GLuint *, shaders); \
    HookWrapper2(GLint, glGetAttribLocation, GLuint, program, const GLchar *, name); \
    HookWrapper3(void, glGetProgramiv, GLuint, program, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetProgramInfoLog, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper3(void, glGetShaderiv, GLuint, shader, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetShaderInfoLog, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper4(void, glGetShaderSource, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, source); \
    HookWrapper2(GLint, glGetUniformLocation, GLuint, program, const GLchar *, name); \
    HookWrapper3(void, glGetUniformfv, GLuint, program, GLint, location, GLfloat *, params); \
    HookWrapper3(void, glGetUniformiv, GLuint, program, GLint, location, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribdv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glGetVertexAttribfv, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetVertexAttribiv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribPointerv, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper1(GLboolean, glIsProgram, GLuint, program); \
    HookWrapper1(GLboolean, glIsShader, GLuint, shader); \
    HookWrapper1(void, glLinkProgram, GLuint, program); \
    HookWrapper4(void, glShaderSource, GLuint, shader, GLsizei, count, const GLchar *const*, string, const GLint *, length); \
    HookWrapper1(void, glUseProgram, GLuint, program); \
    HookWrapper2(void, glUniform1f, GLint, location, GLfloat, v0); \
    HookWrapper3(void, glUniform2f, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void, glUniform3f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper5(void, glUniform4f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper2(void, glUniform1i, GLint, location, GLint, v0); \
    HookWrapper3(void, glUniform2i, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void, glUniform3i, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper5(void, glUniform4i, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper3(void, glUniform1fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, glUniform2fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, glUniform3fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, glUniform4fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, glUniform1iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, glUniform2iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, glUniform3iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, glUniform4iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, glUniformMatrix2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper1(void, glValidateProgram, GLuint, program); \
    HookWrapper2(void, glVertexAttrib1d, GLuint, index, GLdouble, x); \
    HookWrapper2(void, glVertexAttrib1dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttrib1f, GLuint, index, GLfloat, x); \
    HookWrapper2(void, glVertexAttrib1fv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glVertexAttrib1s, GLuint, index, GLshort, x); \
    HookWrapper2(void, glVertexAttrib1sv, GLuint, index, const GLshort *, v); \
    HookWrapper3(void, glVertexAttrib2d, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glVertexAttrib2dv, GLuint, index, const GLdouble *, v); \
    HookWrapper3(void, glVertexAttrib2f, GLuint, index, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glVertexAttrib2fv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glVertexAttrib2s, GLuint, index, GLshort, x, GLshort, y); \
    HookWrapper2(void, glVertexAttrib2sv, GLuint, index, const GLshort *, v); \
    HookWrapper4(void, glVertexAttrib3d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glVertexAttrib3dv, GLuint, index, const GLdouble *, v); \
    HookWrapper4(void, glVertexAttrib3f, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glVertexAttrib3fv, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glVertexAttrib3s, GLuint, index, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glVertexAttrib3sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttrib4Nbv, GLuint, index, const GLbyte *, v); \
    HookWrapper2(void, glVertexAttrib4Niv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttrib4Nsv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glVertexAttrib4Nub, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper2(void, glVertexAttrib4Nubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttrib4Nuiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttrib4Nusv, GLuint, index, const GLushort *, v); \
    HookWrapper2(void, glVertexAttrib4bv, GLuint, index, const GLbyte *, v); \
    HookWrapper5(void, glVertexAttrib4d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glVertexAttrib4dv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glVertexAttrib4f, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glVertexAttrib4fv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glVertexAttrib4iv, GLuint, index, const GLint *, v); \
    HookWrapper5(void, glVertexAttrib4s, GLuint, index, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glVertexAttrib4sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttrib4ubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttrib4uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttrib4usv, GLuint, index, const GLushort *, v); \
    HookWrapper6(void, glVertexAttribPointer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, glUniformMatrix2x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix3x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix2x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix4x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix3x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix4x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glColorMaski, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \
    HookWrapper3(void, glGetBooleani_v, GLenum, target, GLuint, index, GLboolean *, data); \
    HookWrapper3(void, glGetIntegeri_v, GLenum, target, GLuint, index, GLint *, data); \
    HookWrapper2(void, glEnablei, GLenum, target, GLuint, index); \
    HookWrapper2(void, glDisablei, GLenum, target, GLuint, index); \
    HookWrapper2(GLboolean, glIsEnabledi, GLenum, target, GLuint, index); \
    HookWrapper1(void, glBeginTransformFeedback, GLenum, primitiveMode); \
    HookWrapper0(void, glEndTransformFeedback); \
    HookWrapper5(void, glBindBufferRange, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper3(void, glBindBufferBase, GLenum, target, GLuint, index, GLuint, buffer); \
    HookWrapper4(void, glTransformFeedbackVaryings, GLuint, program, GLsizei, count, const GLchar *const*, varyings, GLenum, bufferMode); \
    HookWrapper7(void, glGetTransformFeedbackVarying, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \
    HookWrapper2(void, glClampColor, GLenum, target, GLenum, clamp); \
    HookWrapper2(void, glBeginConditionalRender, GLuint, id, GLenum, mode); \
    HookWrapper0(void, glEndConditionalRender); \
    HookWrapper5(void, glVertexAttribIPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glGetVertexAttribIiv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribIuiv, GLuint, index, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glVertexAttribI1i, GLuint, index, GLint, x); \
    HookWrapper3(void, glVertexAttribI2i, GLuint, index, GLint, x, GLint, y); \
    HookWrapper4(void, glVertexAttribI3i, GLuint, index, GLint, x, GLint, y, GLint, z); \
    HookWrapper5(void, glVertexAttribI4i, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper2(void, glVertexAttribI1ui, GLuint, index, GLuint, x); \
    HookWrapper3(void, glVertexAttribI2ui, GLuint, index, GLuint, x, GLuint, y); \
    HookWrapper4(void, glVertexAttribI3ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z); \
    HookWrapper5(void, glVertexAttribI4ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper2(void, glVertexAttribI1iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI2iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI3iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI4iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI1uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI2uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI3uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI4uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI4bv, GLuint, index, const GLbyte *, v); \
    HookWrapper2(void, glVertexAttribI4sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttribI4ubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttribI4usv, GLuint, index, const GLushort *, v); \
    HookWrapper3(void, glGetUniformuiv, GLuint, program, GLint, location, GLuint *, params); \
    HookWrapper3(void, glBindFragDataLocation, GLuint, program, GLuint, color, const GLchar *, name); \
    HookWrapper2(GLint, glGetFragDataLocation, GLuint, program, const GLchar *, name); \
    HookWrapper2(void, glUniform1ui, GLint, location, GLuint, v0); \
    HookWrapper3(void, glUniform2ui, GLint, location, GLuint, v0, GLuint, v1); \
    HookWrapper4(void, glUniform3ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \
    HookWrapper5(void, glUniform4ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \
    HookWrapper3(void, glUniform1uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform2uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform3uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform4uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glTexParameterIiv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glTexParameterIuiv, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper3(void, glGetTexParameterIiv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTexParameterIuiv, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glClearBufferiv, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \
    HookWrapper3(void, glClearBufferuiv, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \
    HookWrapper3(void, glClearBufferfv, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
    HookWrapper4(void, glClearBufferfi, GLenum, buffer, GLint, drawbuffer, GLfloat, depth, GLint, stencil); \
    HookWrapper2(const GLubyte *, glGetStringi, GLenum, name, GLuint, index); \
    HookWrapper1(GLboolean, glIsRenderbuffer, GLuint, renderbuffer); \
    HookWrapper2(void, glBindRenderbuffer, GLenum, target, GLuint, renderbuffer); \
    HookWrapper2(void, glDeleteRenderbuffers, GLsizei, n, const GLuint *, renderbuffers); \
    HookWrapper2(void, glGenRenderbuffers, GLsizei, n, GLuint *, renderbuffers); \
    HookWrapper4(void, glRenderbufferStorage, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetRenderbufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glIsFramebuffer, GLuint, framebuffer); \
    HookWrapper2(void, glBindFramebuffer, GLenum, target, GLuint, framebuffer); \
    HookWrapper2(void, glDeleteFramebuffers, GLsizei, n, const GLuint *, framebuffers); \
    HookWrapper2(void, glGenFramebuffers, GLsizei, n, GLuint *, framebuffers); \
    HookWrapper1(GLenum, glCheckFramebufferStatus, GLenum, target); \
    HookWrapper5(void, glFramebufferTexture1D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper5(void, glFramebufferTexture2D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper6(void, glFramebufferTexture3D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, zoffset); \
    HookWrapper4(void, glFramebufferRenderbuffer, GLenum, target, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \
    HookWrapper4(void, glGetFramebufferAttachmentParameteriv, GLenum, target, GLenum, attachment, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glGenerateMipmap, GLenum, target); \
    HookWrapper10(void, glBlitFramebuffer, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper5(void, glRenderbufferStorageMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glFramebufferTextureLayer, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \
    HookWrapper4(void *, glMapBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper3(void, glFlushMappedBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper1(void, glBindVertexArray, GLuint, array); \
    HookWrapper2(void, glDeleteVertexArrays, GLsizei, n, const GLuint *, arrays); \
    HookWrapper2(void, glGenVertexArrays, GLsizei, n, GLuint *, arrays); \
    HookWrapper1(GLboolean, glIsVertexArray, GLuint, array); \
    HookWrapper4(void, glDrawArraysInstanced, GLenum, mode, GLint, first, GLsizei, count, GLsizei, instancecount); \
    HookWrapper5(void, glDrawElementsInstanced, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount); \
    HookWrapper3(void, glTexBuffer, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper1(void, glPrimitiveRestartIndex, GLuint, index); \
    HookWrapper5(void, glCopyBufferSubData, GLenum, readTarget, GLenum, writeTarget, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper4(void, glGetUniformIndices, GLuint, program, GLsizei, uniformCount, const GLchar *const*, uniformNames, GLuint *, uniformIndices); \
    HookWrapper5(void, glGetActiveUniformsiv, GLuint, program, GLsizei, uniformCount, const GLuint *, uniformIndices, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetActiveUniformName, GLuint, program, GLuint, uniformIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformName); \
    HookWrapper2(GLuint, glGetUniformBlockIndex, GLuint, program, const GLchar *, uniformBlockName); \
    HookWrapper4(void, glGetActiveUniformBlockiv, GLuint, program, GLuint, uniformBlockIndex, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetActiveUniformBlockName, GLuint, program, GLuint, uniformBlockIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformBlockName); \
    HookWrapper3(void, glUniformBlockBinding, GLuint, program, GLuint, uniformBlockIndex, GLuint, uniformBlockBinding); \
    HookWrapper5(void, glDrawElementsBaseVertex, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLint, basevertex); \
    HookWrapper7(void, glDrawRangeElementsBaseVertex, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices, GLint, basevertex); \
    HookWrapper6(void, glDrawElementsInstancedBaseVertex, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \
    HookWrapper6(void, glMultiDrawElementsBaseVertex, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, drawcount, const GLint *, basevertex); \
    HookWrapper1(void, glProvokingVertex, GLenum, mode); \
    HookWrapper2(GLsync, glFenceSync, GLenum, condition, GLbitfield, flags); \
    HookWrapper1(GLboolean, glIsSync, GLsync, sync); \
    HookWrapper1(void, glDeleteSync, GLsync, sync); \
    HookWrapper3(GLenum, glClientWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper3(void, glWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper2(void, glGetInteger64v, GLenum, pname, GLint64 *, data); \
    HookWrapper5(void, glGetSynciv, GLsync, sync, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \
    HookWrapper3(void, glGetInteger64i_v, GLenum, target, GLuint, index, GLint64 *, data); \
    HookWrapper3(void, glGetBufferParameteri64v, GLenum, target, GLenum, pname, GLint64 *, params); \
    HookWrapper4(void, glFramebufferTexture, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \
    HookWrapper6(void, glTexImage2DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTexImage3DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper3(void, glGetMultisamplefv, GLenum, pname, GLuint, index, GLfloat *, val); \
    HookWrapper2(void, glSampleMaski, GLuint, maskNumber, GLbitfield, mask); \
    HookWrapper4(void, glBindFragDataLocationIndexed, GLuint, program, GLuint, colorNumber, GLuint, index, const GLchar *, name); \
    HookWrapper2(GLint, glGetFragDataIndex, GLuint, program, const GLchar *, name); \
    HookWrapper2(void, glGenSamplers, GLsizei, count, GLuint *, samplers); \
    HookWrapper2(void, glDeleteSamplers, GLsizei, count, const GLuint *, samplers); \
    HookWrapper1(GLboolean, glIsSampler, GLuint, sampler); \
    HookWrapper2(void, glBindSampler, GLuint, unit, GLuint, sampler); \
    HookWrapper3(void, glSamplerParameteri, GLuint, sampler, GLenum, pname, GLint, param); \
    HookWrapper3(void, glSamplerParameteriv, GLuint, sampler, GLenum, pname, const GLint *, param); \
    HookWrapper3(void, glSamplerParameterf, GLuint, sampler, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glSamplerParameterfv, GLuint, sampler, GLenum, pname, const GLfloat *, param); \
    HookWrapper3(void, glSamplerParameterIiv, GLuint, sampler, GLenum, pname, const GLint *, param); \
    HookWrapper3(void, glSamplerParameterIuiv, GLuint, sampler, GLenum, pname, const GLuint *, param); \
    HookWrapper3(void, glGetSamplerParameteriv, GLuint, sampler, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetSamplerParameterIiv, GLuint, sampler, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetSamplerParameterfv, GLuint, sampler, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetSamplerParameterIuiv, GLuint, sampler, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glQueryCounter, GLuint, id, GLenum, target); \
    HookWrapper3(void, glGetQueryObjecti64v, GLuint, id, GLenum, pname, GLint64 *, params); \
    HookWrapper3(void, glGetQueryObjectui64v, GLuint, id, GLenum, pname, GLuint64 *, params); \
    HookWrapper2(void, glVertexAttribDivisor, GLuint, index, GLuint, divisor); \
    HookWrapper4(void, glVertexAttribP1ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP1uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP2ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP2uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP3ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP3uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP4ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP4uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper1(void, glMinSampleShading, GLfloat, value); \
    HookWrapper2(void, glBlendEquationi, GLuint, buf, GLenum, mode); \
    HookWrapper3(void, glBlendEquationSeparatei, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper3(void, glBlendFunci, GLuint, buf, GLenum, src, GLenum, dst); \
    HookWrapper5(void, glBlendFuncSeparatei, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
    HookWrapper2(void, glDrawArraysIndirect, GLenum, mode, const void *, indirect); \
    HookWrapper3(void, glDrawElementsIndirect, GLenum, mode, GLenum, type, const void *, indirect); \
    HookWrapper2(void, glUniform1d, GLint, location, GLdouble, x); \
    HookWrapper3(void, glUniform2d, GLint, location, GLdouble, x, GLdouble, y); \
    HookWrapper4(void, glUniform3d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper5(void, glUniform4d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glUniform1dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void, glUniform2dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void, glUniform3dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void, glUniform4dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix2x3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix2x4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix3x2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix3x4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix4x2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix4x3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper3(void, glGetUniformdv, GLuint, program, GLint, location, GLdouble *, params); \
    HookWrapper3(GLint, glGetSubroutineUniformLocation, GLuint, program, GLenum, shadertype, const GLchar *, name); \
    HookWrapper3(GLuint, glGetSubroutineIndex, GLuint, program, GLenum, shadertype, const GLchar *, name); \
    HookWrapper5(void, glGetActiveSubroutineUniformiv, GLuint, program, GLenum, shadertype, GLuint, index, GLenum, pname, GLint *, values); \
    HookWrapper6(void, glGetActiveSubroutineUniformName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \
    HookWrapper6(void, glGetActiveSubroutineName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \
    HookWrapper3(void, glUniformSubroutinesuiv, GLenum, shadertype, GLsizei, count, const GLuint *, indices); \
    HookWrapper3(void, glGetUniformSubroutineuiv, GLenum, shadertype, GLint, location, GLuint *, params); \
    HookWrapper4(void, glGetProgramStageiv, GLuint, program, GLenum, shadertype, GLenum, pname, GLint *, values); \
    HookWrapper2(void, glPatchParameteri, GLenum, pname, GLint, value); \
    HookWrapper2(void, glPatchParameterfv, GLenum, pname, const GLfloat *, values); \
    HookWrapper2(void, glBindTransformFeedback, GLenum, target, GLuint, id); \
    HookWrapper2(void, glDeleteTransformFeedbacks, GLsizei, n, const GLuint *, ids); \
    HookWrapper2(void, glGenTransformFeedbacks, GLsizei, n, GLuint *, ids); \
    HookWrapper1(GLboolean, glIsTransformFeedback, GLuint, id); \
    HookWrapper0(void, glPauseTransformFeedback); \
    HookWrapper0(void, glResumeTransformFeedback); \
    HookWrapper2(void, glDrawTransformFeedback, GLenum, mode, GLuint, id); \
    HookWrapper3(void, glDrawTransformFeedbackStream, GLenum, mode, GLuint, id, GLuint, stream); \
    HookWrapper3(void, glBeginQueryIndexed, GLenum, target, GLuint, index, GLuint, id); \
    HookWrapper2(void, glEndQueryIndexed, GLenum, target, GLuint, index); \
    HookWrapper4(void, glGetQueryIndexediv, GLenum, target, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glReleaseShaderCompiler); \
    HookWrapper5(void, glShaderBinary, GLsizei, count, const GLuint *, shaders, GLenum, binaryformat, const void *, binary, GLsizei, length); \
    HookWrapper4(void, glGetShaderPrecisionFormat, GLenum, shadertype, GLenum, precisiontype, GLint *, range, GLint *, precision); \
    HookWrapper2(void, glDepthRangef, GLfloat, n, GLfloat, f); \
    HookWrapper1(void, glClearDepthf, GLfloat, d); \
    HookWrapper5(void, glGetProgramBinary, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \
    HookWrapper4(void, glProgramBinary, GLuint, program, GLenum, binaryFormat, const void *, binary, GLsizei, length); \
    HookWrapper3(void, glProgramParameteri, GLuint, program, GLenum, pname, GLint, value); \
    HookWrapper3(void, glUseProgramStages, GLuint, pipeline, GLbitfield, stages, GLuint, program); \
    HookWrapper2(void, glActiveShaderProgram, GLuint, pipeline, GLuint, program); \
    HookWrapper3(GLuint, glCreateShaderProgramv, GLenum, type, GLsizei, count, const GLchar *const*, strings); \
    HookWrapper1(void, glBindProgramPipeline, GLuint, pipeline); \
    HookWrapper2(void, glDeleteProgramPipelines, GLsizei, n, const GLuint *, pipelines); \
    HookWrapper2(void, glGenProgramPipelines, GLsizei, n, GLuint *, pipelines); \
    HookWrapper1(GLboolean, glIsProgramPipeline, GLuint, pipeline); \
    HookWrapper3(void, glGetProgramPipelineiv, GLuint, pipeline, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glProgramUniform1i, GLuint, program, GLint, location, GLint, v0); \
    HookWrapper4(void, glProgramUniform1iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, glProgramUniform1f, GLuint, program, GLint, location, GLfloat, v0); \
    HookWrapper4(void, glProgramUniform1fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, glProgramUniform1d, GLuint, program, GLint, location, GLdouble, v0); \
    HookWrapper4(void, glProgramUniform1dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void, glProgramUniform1ui, GLuint, program, GLint, location, GLuint, v0); \
    HookWrapper4(void, glProgramUniform1uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper4(void, glProgramUniform2i, GLuint, program, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void, glProgramUniform2iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, glProgramUniform2f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void, glProgramUniform2fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void, glProgramUniform2d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1); \
    HookWrapper4(void, glProgramUniform2dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void, glProgramUniform2ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1); \
    HookWrapper4(void, glProgramUniform2uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper5(void, glProgramUniform3i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper4(void, glProgramUniform3iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper5(void, glProgramUniform3f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper4(void, glProgramUniform3fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniform3d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2); \
    HookWrapper4(void, glProgramUniform3dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniform3ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \
    HookWrapper4(void, glProgramUniform3uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper6(void, glProgramUniform4i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper4(void, glProgramUniform4iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper6(void, glProgramUniform4f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper4(void, glProgramUniform4fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper6(void, glProgramUniform4d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2, GLdouble, v3); \
    HookWrapper4(void, glProgramUniform4dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper6(void, glProgramUniform4ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \
    HookWrapper4(void, glProgramUniform4uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper5(void, glProgramUniformMatrix2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper1(void, glValidateProgramPipeline, GLuint, pipeline); \
    HookWrapper4(void, glGetProgramPipelineInfoLog, GLuint, pipeline, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper2(void, glVertexAttribL1d, GLuint, index, GLdouble, x); \
    HookWrapper3(void, glVertexAttribL2d, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper4(void, glVertexAttribL3d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper5(void, glVertexAttribL4d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glVertexAttribL1dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL2dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL3dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL4dv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glVertexAttribLPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glGetVertexAttribLdv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glViewportArrayv, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper5(void, glViewportIndexedf, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
    HookWrapper2(void, glViewportIndexedfv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glScissorArrayv, GLuint, first, GLsizei, count, const GLint *, v); \
    HookWrapper5(void, glScissorIndexed, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glScissorIndexedv, GLuint, index, const GLint *, v); \
    HookWrapper3(void, glDepthRangeArrayv, GLuint, first, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glDepthRangeIndexed, GLuint, index, GLdouble, n, GLdouble, f); \
    HookWrapper3(void, glGetFloati_v, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper3(void, glGetDoublei_v, GLenum, target, GLuint, index, GLdouble *, data); \
    HookWrapper5(void, glDrawArraysInstancedBaseInstance, GLenum, mode, GLint, first, GLsizei, count, GLsizei, instancecount, GLuint, baseinstance); \
    HookWrapper6(void, glDrawElementsInstancedBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLuint, baseinstance); \
    HookWrapper7(void, glDrawElementsInstancedBaseVertexBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex, GLuint, baseinstance); \
    HookWrapper5(void, glGetInternalformativ, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint *, params); \
    HookWrapper4(void, glGetActiveAtomicCounterBufferiv, GLuint, program, GLuint, bufferIndex, GLenum, pname, GLint *, params); \
    HookWrapper7(void, glBindImageTexture, GLuint, unit, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, access, GLenum, format); \
    HookWrapper1(void, glMemoryBarrier, GLbitfield, barriers); \
    HookWrapper4(void, glTexStorage1D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper5(void, glTexStorage2D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glTexStorage3D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper3(void, glDrawTransformFeedbackInstanced, GLenum, mode, GLuint, id, GLsizei, instancecount); \
    HookWrapper4(void, glDrawTransformFeedbackStreamInstanced, GLenum, mode, GLuint, id, GLuint, stream, GLsizei, instancecount); \
    HookWrapper5(void, glClearBufferData, GLenum, target, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper7(void, glClearBufferSubData, GLenum, target, GLenum, internalformat, GLintptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper3(void, glDispatchCompute, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z); \
    HookWrapper1(void, glDispatchComputeIndirect, GLintptr, indirect); \
    HookWrapper15(void, glCopyImageSubData, GLuint, srcName, GLenum, srcTarget, GLint, srcLevel, GLint, srcX, GLint, srcY, GLint, srcZ, GLuint, dstName, GLenum, dstTarget, GLint, dstLevel, GLint, dstX, GLint, dstY, GLint, dstZ, GLsizei, srcWidth, GLsizei, srcHeight, GLsizei, srcDepth); \
    HookWrapper3(void, glFramebufferParameteri, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glGetFramebufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetInternalformati64v, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint64 *, params); \
    HookWrapper8(void, glInvalidateTexSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper2(void, glInvalidateTexImage, GLuint, texture, GLint, level); \
    HookWrapper3(void, glInvalidateBufferSubData, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper1(void, glInvalidateBufferData, GLuint, buffer); \
    HookWrapper3(void, glInvalidateFramebuffer, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments); \
    HookWrapper7(void, glInvalidateSubFramebuffer, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glMultiDrawArraysIndirect, GLenum, mode, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper5(void, glMultiDrawElementsIndirect, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper4(void, glGetProgramInterfaceiv, GLuint, program, GLenum, programInterface, GLenum, pname, GLint *, params); \
    HookWrapper3(GLuint, glGetProgramResourceIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper6(void, glGetProgramResourceName, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLchar *, name); \
    HookWrapper8(void, glGetProgramResourceiv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLint *, params); \
    HookWrapper3(GLint, glGetProgramResourceLocation, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper3(GLint, glGetProgramResourceLocationIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper3(void, glShaderStorageBlockBinding, GLuint, program, GLuint, storageBlockIndex, GLuint, storageBlockBinding); \
    HookWrapper5(void, glTexBufferRange, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper6(void, glTexStorage2DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTexStorage3DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper8(void, glTextureView, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
    HookWrapper4(void, glBindVertexBuffer, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \
    HookWrapper5(void, glVertexAttribFormat, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \
    HookWrapper4(void, glVertexAttribIFormat, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper4(void, glVertexAttribLFormat, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper2(void, glVertexAttribBinding, GLuint, attribindex, GLuint, bindingindex); \
    HookWrapper2(void, glVertexBindingDivisor, GLuint, bindingindex, GLuint, divisor); \
    HookWrapper6(void, glDebugMessageControl, GLenum, source, GLenum, type, GLenum, severity, GLsizei, count, const GLuint *, ids, GLboolean, enabled); \
    HookWrapper6(void, glDebugMessageInsert, GLenum, source, GLenum, type, GLuint, id, GLenum, severity, GLsizei, length, const GLchar *, buf); \
    HookWrapper2(void, glDebugMessageCallback, GLDEBUGPROC, callback, const void *, userParam); \
    HookWrapper8(GLuint, glGetDebugMessageLog, GLuint, count, GLsizei, bufSize, GLenum *, sources, GLenum *, types, GLuint *, ids, GLenum *, severities, GLsizei *, lengths, GLchar *, messageLog); \
    HookWrapper4(void, glPushDebugGroup, GLenum, source, GLuint, id, GLsizei, length, const GLchar *, message); \
    HookWrapper0(void, glPopDebugGroup); \
    HookWrapper4(void, glObjectLabel, GLenum, identifier, GLuint, name, GLsizei, length, const GLchar *, label); \
    HookWrapper5(void, glGetObjectLabel, GLenum, identifier, GLuint, name, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \
    HookWrapper3(void, glObjectPtrLabel, const void *, ptr, GLsizei, length, const GLchar *, label); \
    HookWrapper4(void, glGetObjectPtrLabel, const void *, ptr, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \
    HookWrapper4(void, glBufferStorage, GLenum, target, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper5(void, glClearTexImage, GLuint, texture, GLint, level, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper11(void, glClearTexSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper4(void, glBindBuffersBase, GLenum, target, GLuint, first, GLsizei, count, const GLuint *, buffers); \
    HookWrapper6(void, glBindBuffersRange, GLenum, target, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizeiptr *, sizes); \
    HookWrapper3(void, glBindTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \
    HookWrapper3(void, glBindSamplers, GLuint, first, GLsizei, count, const GLuint *, samplers); \
    HookWrapper3(void, glBindImageTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \
    HookWrapper5(void, glBindVertexBuffers, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizei *, strides); \
    HookWrapper2(void, glClipControl, GLenum, origin, GLenum, depth); \
    HookWrapper2(void, glCreateTransformFeedbacks, GLsizei, n, GLuint *, ids); \
    HookWrapper3(void, glTransformFeedbackBufferBase, GLuint, xfb, GLuint, index, GLuint, buffer); \
    HookWrapper5(void, glTransformFeedbackBufferRange, GLuint, xfb, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper3(void, glGetTransformFeedbackiv, GLuint, xfb, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetTransformFeedbacki_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint *, param); \
    HookWrapper4(void, glGetTransformFeedbacki64_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint64 *, param); \
    HookWrapper2(void, glCreateBuffers, GLsizei, n, GLuint *, buffers); \
    HookWrapper4(void, glNamedBufferStorage, GLuint, buffer, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper4(void, glNamedBufferData, GLuint, buffer, GLsizeiptr, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, const void *, data); \
    HookWrapper5(void, glCopyNamedBufferSubData, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper5(void, glClearNamedBufferDataEXT, GLuint, buffer, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper7(void, glClearNamedBufferSubData, GLuint, buffer, GLenum, internalformat, GLintptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper2(void *, glMapNamedBufferEXT, GLuint, buffer, GLenum, access); \
    HookWrapper4(void *, glMapNamedBufferRange, GLuint, buffer, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \
    HookWrapper3(void, glFlushMappedNamedBufferRange, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper3(void, glGetNamedBufferParameterivEXT, GLuint, buffer, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetNamedBufferParameteri64v, GLuint, buffer, GLenum, pname, GLint64 *, params); \
    HookWrapper3(void, glGetNamedBufferPointervEXT, GLuint, buffer, GLenum, pname, void **, params); \
    HookWrapper4(void, glGetNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \
    HookWrapper2(void, glCreateFramebuffers, GLsizei, n, GLuint *, framebuffers); \
    HookWrapper4(void, glNamedFramebufferRenderbufferEXT, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \
    HookWrapper3(void, glNamedFramebufferParameteriEXT, GLuint, framebuffer, GLenum, pname, GLint, param); \
    HookWrapper4(void, glNamedFramebufferTextureEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level); \
    HookWrapper5(void, glNamedFramebufferTextureLayerEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \
    HookWrapper2(void, glFramebufferDrawBufferEXT, GLuint, framebuffer, GLenum, buf); \
    HookWrapper3(void, glFramebufferDrawBuffersEXT, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \
    HookWrapper2(void, glFramebufferReadBufferEXT, GLuint, framebuffer, GLenum, src); \
    HookWrapper3(void, glInvalidateNamedFramebufferData, GLuint, framebuffer, GLsizei, numAttachments, const GLenum *, attachments); \
    HookWrapper7(void, glInvalidateNamedFramebufferSubData, GLuint, framebuffer, GLsizei, numAttachments, const GLenum *, attachments, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glClearNamedFramebufferiv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \
    HookWrapper4(void, glClearNamedFramebufferuiv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \
    HookWrapper4(void, glClearNamedFramebufferfv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
    HookWrapper4(void, glClearNamedFramebufferfi, GLuint, framebuffer, GLenum, buffer, const GLfloat, depth, GLint, stencil); \
    HookWrapper12(void, glBlitNamedFramebuffer, GLuint, readFramebuffer, GLuint, drawFramebuffer, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper2(GLenum, glCheckNamedFramebufferStatusEXT, GLuint, framebuffer, GLenum, target); \
    HookWrapper3(void, glGetNamedFramebufferParameterivEXT, GLuint, framebuffer, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetNamedFramebufferAttachmentParameterivEXT, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glCreateRenderbuffers, GLsizei, n, GLuint *, renderbuffers); \
    HookWrapper4(void, glNamedRenderbufferStorageEXT, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glNamedRenderbufferStorageMultisampleEXT, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetNamedRenderbufferParameterivEXT, GLuint, renderbuffer, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glCreateTextures, GLenum, target, GLsizei, n, GLuint *, textures); \
    HookWrapper3(void, glTextureBuffer, GLuint, texture, GLenum, internalformat, GLuint, buffer); \
    HookWrapper5(void, glTextureBufferRange, GLuint, texture, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper4(void, glTextureStorage1D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper5(void, glTextureStorage2D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glTextureStorage3D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper6(void, glTextureStorage2DMultisample, GLuint, texture, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTextureStorage3DMultisample, GLuint, texture, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, glTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper7(void, glCompressedTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper9(void, glCompressedTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper11(void, glCompressedTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper6(void, glCopyTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glCopyTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper9(void, glCopyTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glTextureParameterf, GLuint, texture, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glTextureParameterfv, GLuint, texture, GLenum, pname, const GLfloat *, param); \
    HookWrapper3(void, glTextureParameteri, GLuint, texture, GLenum, pname, GLint, param); \
    HookWrapper3(void, glTextureParameterIiv, GLuint, texture, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glTextureParameterIuiv, GLuint, texture, GLenum, pname, const GLuint *, params); \
    HookWrapper3(void, glTextureParameteriv, GLuint, texture, GLenum, pname, const GLint *, param); \
    HookWrapper1(void, glGenerateTextureMipmap, GLuint, texture); \
    HookWrapper2(void, glBindTextureUnit, GLuint, unit, GLuint, texture); \
    HookWrapper6(void, glGetTextureImage, GLuint, texture, GLint, level, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetCompressedTextureImage, GLuint, texture, GLint, level, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetTextureLevelParameterfv, GLuint, texture, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTextureLevelParameteriv, GLuint, texture, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTextureParameterfv, GLuint, texture, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetTextureParameterIiv, GLuint, texture, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTextureParameterIuiv, GLuint, texture, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glGetTextureParameteriv, GLuint, texture, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glCreateVertexArrays, GLsizei, n, GLuint *, arrays); \
    HookWrapper2(void, glDisableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
    HookWrapper2(void, glEnableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
    HookWrapper2(void, glVertexArrayElementBuffer, GLuint, vaobj, GLuint, buffer); \
    HookWrapper5(void, glVertexArrayBindVertexBufferEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \
    HookWrapper6(void, glVertexArrayVertexBuffers, GLuint, vaobj, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizei *, strides); \
    HookWrapper3(void, glVertexArrayVertexAttribBindingEXT, GLuint, vaobj, GLuint, attribindex, GLuint, bindingindex); \
    HookWrapper6(void, glVertexArrayVertexAttribFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \
    HookWrapper5(void, glVertexArrayVertexAttribIFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper5(void, glVertexArrayVertexAttribLFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper3(void, glVertexArrayVertexBindingDivisorEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, divisor); \
    HookWrapper3(void, glGetVertexArrayiv, GLuint, vaobj, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayIndexediv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayIndexed64iv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint64 *, param); \
    HookWrapper2(void, glCreateSamplers, GLsizei, n, GLuint *, samplers); \
    HookWrapper2(void, glCreateProgramPipelines, GLsizei, n, GLuint *, pipelines); \
    HookWrapper3(void, glCreateQueries, GLenum, target, GLsizei, n, GLuint *, ids); \
    HookWrapper4(void, glGetQueryBufferObjecti64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectui64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectuiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper1(void, glMemoryBarrierByRegion, GLbitfield, barriers); \
    HookWrapper12(void, glGetTextureSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper10(void, glGetCompressedTextureSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, bufSize, void *, pixels); \
    HookWrapper0(GLenum, glGetGraphicsResetStatus); \
    HookWrapper4(void, glGetnCompressedTexImage, GLenum, target, GLint, lod, GLsizei, bufSize, void *, pixels); \
    HookWrapper6(void, glGetnTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetnUniformdv, GLuint, program, GLint, location, GLsizei, bufSize, GLdouble *, params); \
    HookWrapper4(void, glGetnUniformfv, GLuint, program, GLint, location, GLsizei, bufSize, GLfloat *, params); \
    HookWrapper4(void, glGetnUniformiv, GLuint, program, GLint, location, GLsizei, bufSize, GLint *, params); \
    HookWrapper4(void, glGetnUniformuiv, GLuint, program, GLint, location, GLsizei, bufSize, GLuint *, params); \
    HookWrapper8(void, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
    HookWrapper0(void, glTextureBarrier); \
    HookWrapper6(void, glDispatchComputeGroupSizeARB, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z, GLuint, group_size_x, GLuint, group_size_y, GLuint, group_size_z); \
    HookWrapper5(void, glMultiDrawArraysIndirectCountARB, GLenum, mode, GLintptr, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
    HookWrapper6(void, glMultiDrawElementsIndirectCountARB, GLenum, mode, GLenum, type, GLintptr, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
    HookWrapper5(void, glNamedStringARB, GLenum, type, GLint, namelen, const GLchar *, name, GLint, stringlen, const GLchar *, string); \
    HookWrapper2(void, glDeleteNamedStringARB, GLint, namelen, const GLchar *, name); \
    HookWrapper4(void, glCompileShaderIncludeARB, GLuint, shader, GLsizei, count, const GLchar *const*, path, const GLint *, length); \
    HookWrapper2(GLboolean, glIsNamedStringARB, GLint, namelen, const GLchar *, name); \
    HookWrapper5(void, glGetNamedStringARB, GLint, namelen, const GLchar *, name, GLsizei, bufSize, GLint *, stringlen, GLchar *, string); \
    HookWrapper4(void, glGetNamedStringivARB, GLint, namelen, const GLchar *, name, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glBlendBarrierKHR); \
    HookWrapper4(void, glLabelObjectEXT, GLenum, type, GLuint, object, GLsizei, length, const GLchar *, label); \
    HookWrapper5(void, glGetObjectLabelEXT, GLenum, type, GLuint, object, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \
    HookWrapper2(void, glInsertEventMarkerEXT, GLsizei, length, const GLchar *, marker); \
    HookWrapper2(void, glPushGroupMarkerEXT, GLsizei, length, const GLchar *, marker); \
    HookWrapper0(void, glPopGroupMarkerEXT); \
    HookWrapper2(void, glDepthBoundsEXT, GLclampd, zmin, GLclampd, zmax); \
    HookWrapper4(void, glTextureParameterfEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glTextureParameteriEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper9(void, glTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glCopyTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper9(void, glCopyTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper7(void, glCopyTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper9(void, glCopyTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glGetTextureImageEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper4(void, glGetTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetTextureLevelParameterfvEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glGetTextureLevelParameterivEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper11(void, glTextureImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper12(void, glTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glCopyTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glBindMultiTextureEXT, GLenum, texunit, GLenum, target, GLuint, texture); \
    HookWrapper4(void, glMultiTexParameteriEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glMultiTexParameterfEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper9(void, glMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glCopyMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper9(void, glCopyMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper7(void, glCopyMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper9(void, glCopyMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glGetMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper4(void, glGetMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetMultiTexLevelParameterfvEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glGetMultiTexLevelParameterivEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper11(void, glMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper12(void, glMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glCopyMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetFloatIndexedvEXT, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper3(void, glGetDoubleIndexedvEXT, GLenum, target, GLuint, index, GLdouble *, data); \
    HookWrapper3(void, glGetPointerIndexedvEXT, GLenum, target, GLuint, index, void **, data); \
    HookWrapper3(void, glGetIntegerIndexedvEXT, GLenum, target, GLuint, index, GLint *, data); \
    HookWrapper3(void, glGetBooleanIndexedvEXT, GLenum, target, GLuint, index, GLboolean *, data); \
    HookWrapper10(void, glCompressedTextureImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper9(void, glCompressedTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper12(void, glCompressedTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper10(void, glCompressedTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper4(void, glGetCompressedTextureImageEXT, GLuint, texture, GLenum, target, GLint, lod, void *, img); \
    HookWrapper10(void, glCompressedMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper9(void, glCompressedMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper12(void, glCompressedMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper10(void, glCompressedMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper4(void, glGetCompressedMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, lod, void *, img); \
    HookWrapper4(void, glNamedBufferDataEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, const void *, data); \
    HookWrapper4(void, glGetNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \
    HookWrapper4(void, glTextureBufferEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper4(void, glMultiTexBufferEXT, GLenum, texunit, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper4(void, glTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper4(void, glGetTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper4(void, glMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper4(void, glGetMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glGetPointeri_vEXT, GLenum, pname, GLuint, index, void **, params); \
    HookWrapper4(void, glGetNamedProgramivEXT, GLuint, program, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glNamedFramebufferTexture1DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper5(void, glNamedFramebufferTexture2DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper6(void, glNamedFramebufferTexture3DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, zoffset); \
    HookWrapper2(void, glGenerateTextureMipmapEXT, GLuint, texture, GLenum, target); \
    HookWrapper2(void, glGenerateMultiTexMipmapEXT, GLenum, texunit, GLenum, target); \
    HookWrapper5(void, glNamedCopyBufferSubDataEXT, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper8(void, glVertexArrayVertexAttribOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, GLintptr, offset); \
    HookWrapper7(void, glVertexArrayVertexAttribIOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper3(void, glGetVertexArrayIntegervEXT, GLuint, vaobj, GLenum, pname, GLint *, param); \
    HookWrapper3(void, glGetVertexArrayPointervEXT, GLuint, vaobj, GLenum, pname, void **, param); \
    HookWrapper4(void, glGetVertexArrayIntegeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayPointeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, void **, param); \
    HookWrapper4(void *, glMapNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper3(void, glFlushMappedNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper4(void, glNamedBufferStorageEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper7(void, glClearNamedBufferSubDataEXT, GLuint, buffer, GLenum, internalformat, GLsizeiptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper6(void, glTextureBufferRangeEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper5(void, glTextureStorage1DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper6(void, glTextureStorage2DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper7(void, glTextureStorage3DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper7(void, glTextureStorage2DMultisampleEXT, GLuint, texture, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper8(void, glTextureStorage3DMultisampleEXT, GLuint, texture, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glVertexArrayVertexAttribLOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper3(void, glVertexArrayVertexAttribDivisorEXT, GLuint, vaobj, GLuint, index, GLuint, divisor); \
    HookWrapper3(void, glPolygonOffsetClampEXT, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
    HookWrapper2(void, glRasterSamplesEXT, GLuint, samples, GLboolean, fixedsamplelocations); \
    HookWrapper0(void, glFrameTerminatorGREMEDY); \
    HookWrapper2(void, glStringMarkerGREMEDY, GLsizei, len, const void *, string); \
    HookWrapper6(void, glFramebufferTextureMultiviewOVR, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, baseViewIndex, GLsizei, numViews); \
    HookWrapper0(void, glBlendBarrier); \
    HookWrapper8(void, glPrimitiveBoundingBox, GLfloat, minX, GLfloat, minY, GLfloat, minZ, GLfloat, minW, GLfloat, maxX, GLfloat, maxY, GLfloat, maxZ, GLfloat, maxW); \
    HookWrapper3(void, glDiscardFramebufferEXT, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments); \
    HookWrapper6(void, glFramebufferTexture2DMultisampleEXT, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLsizei, samples); \
    HookWrapper7(void, glFramebufferTextureMultisampleMultiviewOVR, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLsizei, samples, GLint, baseViewIndex, GLsizei, numViews); \
    HookWrapper2(BOOL, wglDXSetResourceShareHandleNV, void *, dxObject, HANDLE, shareHandle); \
    HookWrapper1(HANDLE, wglDXOpenDeviceNV, void *, dxDevice); \
    HookWrapper1(BOOL, wglDXCloseDeviceNV, HANDLE, hDevice); \
    HookWrapper5(HANDLE, wglDXRegisterObjectNV, HANDLE, hDevice, void *, dxObject, GLuint, name, GLenum, type, GLenum, access); \
    HookWrapper2(BOOL, wglDXUnregisterObjectNV, HANDLE, hDevice, HANDLE, hObject); \
    HookWrapper2(BOOL, wglDXObjectAccessNV, HANDLE, hObject, GLenum, access); \
    HookWrapper3(BOOL, wglDXLockObjectsNV, HANDLE, hDevice, GLint, count, HANDLE *, hObjects); \
    HookWrapper3(BOOL, wglDXUnlockObjectsNV, HANDLE, hDevice, GLint, count, HANDLE *, hObjects); \



// unsupported entry points - used for dummy functions
#define DefineUnsupportedDummies() \
    HookWrapper1(GLuint64, glgettexturehandlearb, GLuint, texture); \
    HookWrapper2(GLuint64, glgettexturesamplerhandlearb, GLuint, texture, GLuint, sampler); \
    HookWrapper1(void, glmaketexturehandleresidentarb, GLuint64, handle); \
    HookWrapper1(void, glmaketexturehandlenonresidentarb, GLuint64, handle); \
    HookWrapper5(GLuint64, glgetimagehandlearb, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, format); \
    HookWrapper2(void, glmakeimagehandleresidentarb, GLuint64, handle, GLenum, access); \
    HookWrapper1(void, glmakeimagehandlenonresidentarb, GLuint64, handle); \
    HookWrapper2(void, gluniformhandleui64arb, GLint, location, GLuint64, value); \
    HookWrapper3(void, gluniformhandleui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glprogramuniformhandleui64arb, GLuint, program, GLint, location, GLuint64, value); \
    HookWrapper4(void, glprogramuniformhandleui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, values); \
    HookWrapper1(GLboolean, glistexturehandleresidentarb, GLuint64, handle); \
    HookWrapper1(GLboolean, glisimagehandleresidentarb, GLuint64, handle); \
    HookWrapper2(void, glvertexattribl1ui64arb, GLuint, index, GLuint64EXT, x); \
    HookWrapper2(void, glvertexattribl1ui64varb, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper3(void, glgetvertexattriblui64varb, GLuint, index, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper3(GLsync, glcreatesyncfromcleventarb, struct _cl_context *, context, struct _cl_event *, event, GLbitfield, flags); \
    HookWrapper4(void, glbufferpagecommitmentarb, GLenum, target, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper4(void, glnamedbufferpagecommitmentext, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper4(void, glnamedbufferpagecommitmentarb, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper9(void, gltexpagecommitmentarb, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, commit); \
    HookWrapper1(void, glclientactivetexture, GLenum, texture); \
    HookWrapper2(void, glmultitexcoord1d, GLenum, target, GLdouble, s); \
    HookWrapper2(void, glmultitexcoord1dv, GLenum, target, const GLdouble *, v); \
    HookWrapper2(void, glmultitexcoord1f, GLenum, target, GLfloat, s); \
    HookWrapper2(void, glmultitexcoord1fv, GLenum, target, const GLfloat *, v); \
    HookWrapper2(void, glmultitexcoord1i, GLenum, target, GLint, s); \
    HookWrapper2(void, glmultitexcoord1iv, GLenum, target, const GLint *, v); \
    HookWrapper2(void, glmultitexcoord1s, GLenum, target, GLshort, s); \
    HookWrapper2(void, glmultitexcoord1sv, GLenum, target, const GLshort *, v); \
    HookWrapper3(void, glmultitexcoord2d, GLenum, target, GLdouble, s, GLdouble, t); \
    HookWrapper2(void, glmultitexcoord2dv, GLenum, target, const GLdouble *, v); \
    HookWrapper3(void, glmultitexcoord2f, GLenum, target, GLfloat, s, GLfloat, t); \
    HookWrapper2(void, glmultitexcoord2fv, GLenum, target, const GLfloat *, v); \
    HookWrapper3(void, glmultitexcoord2i, GLenum, target, GLint, s, GLint, t); \
    HookWrapper2(void, glmultitexcoord2iv, GLenum, target, const GLint *, v); \
    HookWrapper3(void, glmultitexcoord2s, GLenum, target, GLshort, s, GLshort, t); \
    HookWrapper2(void, glmultitexcoord2sv, GLenum, target, const GLshort *, v); \
    HookWrapper4(void, glmultitexcoord3d, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r); \
    HookWrapper2(void, glmultitexcoord3dv, GLenum, target, const GLdouble *, v); \
    HookWrapper4(void, glmultitexcoord3f, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r); \
    HookWrapper2(void, glmultitexcoord3fv, GLenum, target, const GLfloat *, v); \
    HookWrapper4(void, glmultitexcoord3i, GLenum, target, GLint, s, GLint, t, GLint, r); \
    HookWrapper2(void, glmultitexcoord3iv, GLenum, target, const GLint *, v); \
    HookWrapper4(void, glmultitexcoord3s, GLenum, target, GLshort, s, GLshort, t, GLshort, r); \
    HookWrapper2(void, glmultitexcoord3sv, GLenum, target, const GLshort *, v); \
    HookWrapper5(void, glmultitexcoord4d, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r, GLdouble, q); \
    HookWrapper2(void, glmultitexcoord4dv, GLenum, target, const GLdouble *, v); \
    HookWrapper5(void, glmultitexcoord4f, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, q); \
    HookWrapper2(void, glmultitexcoord4fv, GLenum, target, const GLfloat *, v); \
    HookWrapper5(void, glmultitexcoord4i, GLenum, target, GLint, s, GLint, t, GLint, r, GLint, q); \
    HookWrapper2(void, glmultitexcoord4iv, GLenum, target, const GLint *, v); \
    HookWrapper5(void, glmultitexcoord4s, GLenum, target, GLshort, s, GLshort, t, GLshort, r, GLshort, q); \
    HookWrapper2(void, glmultitexcoord4sv, GLenum, target, const GLshort *, v); \
    HookWrapper1(void, glloadtransposematrixf, const GLfloat *, m); \
    HookWrapper1(void, glloadtransposematrixd, const GLdouble *, m); \
    HookWrapper1(void, glmulttransposematrixf, const GLfloat *, m); \
    HookWrapper1(void, glmulttransposematrixd, const GLdouble *, m); \
    HookWrapper1(void, glfogcoordf, GLfloat, coord); \
    HookWrapper1(void, glfogcoordfv, const GLfloat *, coord); \
    HookWrapper1(void, glfogcoordd, GLdouble, coord); \
    HookWrapper1(void, glfogcoorddv, const GLdouble *, coord); \
    HookWrapper3(void, glfogcoordpointer, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glsecondarycolor3b, GLbyte, red, GLbyte, green, GLbyte, blue); \
    HookWrapper1(void, glsecondarycolor3bv, const GLbyte *, v); \
    HookWrapper3(void, glsecondarycolor3d, GLdouble, red, GLdouble, green, GLdouble, blue); \
    HookWrapper1(void, glsecondarycolor3dv, const GLdouble *, v); \
    HookWrapper3(void, glsecondarycolor3f, GLfloat, red, GLfloat, green, GLfloat, blue); \
    HookWrapper1(void, glsecondarycolor3fv, const GLfloat *, v); \
    HookWrapper3(void, glsecondarycolor3i, GLint, red, GLint, green, GLint, blue); \
    HookWrapper1(void, glsecondarycolor3iv, const GLint *, v); \
    HookWrapper3(void, glsecondarycolor3s, GLshort, red, GLshort, green, GLshort, blue); \
    HookWrapper1(void, glsecondarycolor3sv, const GLshort *, v); \
    HookWrapper3(void, glsecondarycolor3ub, GLubyte, red, GLubyte, green, GLubyte, blue); \
    HookWrapper1(void, glsecondarycolor3ubv, const GLubyte *, v); \
    HookWrapper3(void, glsecondarycolor3ui, GLuint, red, GLuint, green, GLuint, blue); \
    HookWrapper1(void, glsecondarycolor3uiv, const GLuint *, v); \
    HookWrapper3(void, glsecondarycolor3us, GLushort, red, GLushort, green, GLushort, blue); \
    HookWrapper1(void, glsecondarycolor3usv, const GLushort *, v); \
    HookWrapper4(void, glsecondarycolorpointer, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, glwindowpos2d, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dv, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2f, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fv, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2i, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2iv, const GLint *, v); \
    HookWrapper2(void, glwindowpos2s, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2sv, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3d, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dv, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3f, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fv, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3i, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3iv, const GLint *, v); \
    HookWrapper3(void, glwindowpos3s, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3sv, const GLshort *, v); \
    HookWrapper2(void, glvertexp2ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp2uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, glvertexp3ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp3uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, glvertexp4ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp4uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, gltexcoordp1ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp1uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp2ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp2uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp3ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp3uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp4ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp4uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp1ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp1uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp2ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp2uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp3ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp3uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp4ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp4uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, glnormalp3ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, glnormalp3uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, glcolorp3ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glcolorp3uiv, GLenum, type, const GLuint *, color); \
    HookWrapper2(void, glcolorp4ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glcolorp4uiv, GLenum, type, const GLuint *, color); \
    HookWrapper2(void, glsecondarycolorp3ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glsecondarycolorp3uiv, GLenum, type, const GLuint *, color); \
    HookWrapper4(void, glgetnmapdv, GLenum, target, GLenum, query, GLsizei, bufSize, GLdouble *, v); \
    HookWrapper4(void, glgetnmapfv, GLenum, target, GLenum, query, GLsizei, bufSize, GLfloat *, v); \
    HookWrapper4(void, glgetnmapiv, GLenum, target, GLenum, query, GLsizei, bufSize, GLint *, v); \
    HookWrapper3(void, glgetnpixelmapfv, GLenum, map, GLsizei, bufSize, GLfloat *, values); \
    HookWrapper3(void, glgetnpixelmapuiv, GLenum, map, GLsizei, bufSize, GLuint *, values); \
    HookWrapper3(void, glgetnpixelmapusv, GLenum, map, GLsizei, bufSize, GLushort *, values); \
    HookWrapper2(void, glgetnpolygonstipple, GLsizei, bufSize, GLubyte *, pattern); \
    HookWrapper5(void, glgetncolortable, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, table); \
    HookWrapper5(void, glgetnconvolutionfilter, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, image); \
    HookWrapper8(void, glgetnseparablefilter, GLenum, target, GLenum, format, GLenum, type, GLsizei, rowBufSize, void *, row, GLsizei, columnBufSize, void *, column, void *, span); \
    HookWrapper6(void, glgetnhistogram, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper6(void, glgetnminmax, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper8(void, glprimitiveboundingboxarb, GLfloat, minX, GLfloat, minY, GLfloat, minZ, GLfloat, minW, GLfloat, maxX, GLfloat, maxY, GLfloat, maxZ, GLfloat, maxW); \
    HookWrapper4(void, glprogramstringarb, GLenum, target, GLenum, format, GLsizei, len, const void *, string); \
    HookWrapper2(void, glbindprogramarb, GLenum, target, GLuint, program); \
    HookWrapper2(void, gldeleteprogramsarb, GLsizei, n, const GLuint *, programs); \
    HookWrapper2(void, glgenprogramsarb, GLsizei, n, GLuint *, programs); \
    HookWrapper6(void, glprogramenvparameter4darb, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramenvparameter4dvarb, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper6(void, glprogramenvparameter4farb, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramenvparameter4fvarb, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper6(void, glprogramlocalparameter4darb, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramlocalparameter4dvarb, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper6(void, glprogramlocalparameter4farb, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramlocalparameter4fvarb, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper3(void, glgetprogramenvparameterdvarb, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper3(void, glgetprogramenvparameterfvarb, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper3(void, glgetprogramlocalparameterdvarb, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper3(void, glgetprogramlocalparameterfvarb, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper3(void, glgetprogramivarb, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetprogramstringarb, GLenum, target, GLenum, pname, void *, string); \
    HookWrapper1(GLboolean, glisprogramarb, GLuint, program); \
    HookWrapper5(void, glframebuffertexturefacearb, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper2(void, gluniform1i64arb, GLint, location, GLint64, x); \
    HookWrapper3(void, gluniform2i64arb, GLint, location, GLint64, x, GLint64, y); \
    HookWrapper4(void, gluniform3i64arb, GLint, location, GLint64, x, GLint64, y, GLint64, z); \
    HookWrapper5(void, gluniform4i64arb, GLint, location, GLint64, x, GLint64, y, GLint64, z, GLint64, w); \
    HookWrapper3(void, gluniform1i64varb, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper3(void, gluniform2i64varb, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper3(void, gluniform3i64varb, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper3(void, gluniform4i64varb, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper2(void, gluniform1ui64arb, GLint, location, GLuint64, x); \
    HookWrapper3(void, gluniform2ui64arb, GLint, location, GLuint64, x, GLuint64, y); \
    HookWrapper4(void, gluniform3ui64arb, GLint, location, GLuint64, x, GLuint64, y, GLuint64, z); \
    HookWrapper5(void, gluniform4ui64arb, GLint, location, GLuint64, x, GLuint64, y, GLuint64, z, GLuint64, w); \
    HookWrapper3(void, gluniform1ui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, gluniform2ui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, gluniform3ui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, gluniform4ui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glgetuniformi64varb, GLuint, program, GLint, location, GLint64 *, params); \
    HookWrapper3(void, glgetuniformui64varb, GLuint, program, GLint, location, GLuint64 *, params); \
    HookWrapper4(void, glgetnuniformi64varb, GLuint, program, GLint, location, GLsizei, bufSize, GLint64 *, params); \
    HookWrapper4(void, glgetnuniformui64varb, GLuint, program, GLint, location, GLsizei, bufSize, GLuint64 *, params); \
    HookWrapper3(void, glprogramuniform1i64arb, GLuint, program, GLint, location, GLint64, x); \
    HookWrapper4(void, glprogramuniform2i64arb, GLuint, program, GLint, location, GLint64, x, GLint64, y); \
    HookWrapper5(void, glprogramuniform3i64arb, GLuint, program, GLint, location, GLint64, x, GLint64, y, GLint64, z); \
    HookWrapper6(void, glprogramuniform4i64arb, GLuint, program, GLint, location, GLint64, x, GLint64, y, GLint64, z, GLint64, w); \
    HookWrapper4(void, glprogramuniform1i64varb, GLuint, program, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper4(void, glprogramuniform2i64varb, GLuint, program, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper4(void, glprogramuniform3i64varb, GLuint, program, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper4(void, glprogramuniform4i64varb, GLuint, program, GLint, location, GLsizei, count, const GLint64 *, value); \
    HookWrapper3(void, glprogramuniform1ui64arb, GLuint, program, GLint, location, GLuint64, x); \
    HookWrapper4(void, glprogramuniform2ui64arb, GLuint, program, GLint, location, GLuint64, x, GLuint64, y); \
    HookWrapper5(void, glprogramuniform3ui64arb, GLuint, program, GLint, location, GLuint64, x, GLuint64, y, GLuint64, z); \
    HookWrapper6(void, glprogramuniform4ui64arb, GLuint, program, GLint, location, GLuint64, x, GLuint64, y, GLuint64, z, GLuint64, w); \
    HookWrapper4(void, glprogramuniform1ui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper4(void, glprogramuniform2ui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper4(void, glprogramuniform3ui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper4(void, glprogramuniform4ui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper6(void, glcolortable, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper3(void, glcolortableparameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glcolortableparameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopycolortable, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper4(void, glgetcolortable, GLenum, target, GLenum, format, GLenum, type, void *, table); \
    HookWrapper3(void, glgetcolortableparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetcolortableparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glcolorsubtable, GLenum, target, GLsizei, start, GLsizei, count, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper5(void, glcopycolorsubtable, GLenum, target, GLsizei, start, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glconvolutionfilter1d, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper7(void, glconvolutionfilter2d, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper3(void, glconvolutionparameterf, GLenum, target, GLenum, pname, GLfloat, params); \
    HookWrapper3(void, glconvolutionparameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glconvolutionparameteri, GLenum, target, GLenum, pname, GLint, params); \
    HookWrapper3(void, glconvolutionparameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopyconvolutionfilter1d, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glcopyconvolutionfilter2d, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glgetconvolutionfilter, GLenum, target, GLenum, format, GLenum, type, void *, image); \
    HookWrapper3(void, glgetconvolutionparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetconvolutionparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glgetseparablefilter, GLenum, target, GLenum, format, GLenum, type, void *, row, void *, column, void *, span); \
    HookWrapper8(void, glseparablefilter2d, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, row, const void *, column); \
    HookWrapper5(void, glgethistogram, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgethistogramparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgethistogramparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glgetminmax, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgetminmaxparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetminmaxparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glhistogram, GLenum, target, GLsizei, width, GLenum, internalformat, GLboolean, sink); \
    HookWrapper3(void, glminmax, GLenum, target, GLenum, internalformat, GLboolean, sink); \
    HookWrapper1(void, glresethistogram, GLenum, target); \
    HookWrapper1(void, glresetminmax, GLenum, target); \
    HookWrapper1(void, glcurrentpalettematrixarb, GLint, index); \
    HookWrapper2(void, glmatrixindexubvarb, GLint, size, const GLubyte *, indices); \
    HookWrapper2(void, glmatrixindexusvarb, GLint, size, const GLushort *, indices); \
    HookWrapper2(void, glmatrixindexuivarb, GLint, size, const GLuint *, indices); \
    HookWrapper4(void, glmatrixindexpointerarb, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, glclientactivetexturearb, GLenum, texture); \
    HookWrapper2(void, glmultitexcoord1darb, GLenum, target, GLdouble, s); \
    HookWrapper2(void, glmultitexcoord1dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper2(void, glmultitexcoord1farb, GLenum, target, GLfloat, s); \
    HookWrapper2(void, glmultitexcoord1fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper2(void, glmultitexcoord1iarb, GLenum, target, GLint, s); \
    HookWrapper2(void, glmultitexcoord1ivarb, GLenum, target, const GLint *, v); \
    HookWrapper2(void, glmultitexcoord1sarb, GLenum, target, GLshort, s); \
    HookWrapper2(void, glmultitexcoord1svarb, GLenum, target, const GLshort *, v); \
    HookWrapper3(void, glmultitexcoord2darb, GLenum, target, GLdouble, s, GLdouble, t); \
    HookWrapper2(void, glmultitexcoord2dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper3(void, glmultitexcoord2farb, GLenum, target, GLfloat, s, GLfloat, t); \
    HookWrapper2(void, glmultitexcoord2fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper3(void, glmultitexcoord2iarb, GLenum, target, GLint, s, GLint, t); \
    HookWrapper2(void, glmultitexcoord2ivarb, GLenum, target, const GLint *, v); \
    HookWrapper3(void, glmultitexcoord2sarb, GLenum, target, GLshort, s, GLshort, t); \
    HookWrapper2(void, glmultitexcoord2svarb, GLenum, target, const GLshort *, v); \
    HookWrapper4(void, glmultitexcoord3darb, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r); \
    HookWrapper2(void, glmultitexcoord3dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper4(void, glmultitexcoord3farb, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r); \
    HookWrapper2(void, glmultitexcoord3fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper4(void, glmultitexcoord3iarb, GLenum, target, GLint, s, GLint, t, GLint, r); \
    HookWrapper2(void, glmultitexcoord3ivarb, GLenum, target, const GLint *, v); \
    HookWrapper4(void, glmultitexcoord3sarb, GLenum, target, GLshort, s, GLshort, t, GLshort, r); \
    HookWrapper2(void, glmultitexcoord3svarb, GLenum, target, const GLshort *, v); \
    HookWrapper5(void, glmultitexcoord4darb, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r, GLdouble, q); \
    HookWrapper2(void, glmultitexcoord4dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper5(void, glmultitexcoord4farb, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, q); \
    HookWrapper2(void, glmultitexcoord4fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper5(void, glmultitexcoord4iarb, GLenum, target, GLint, s, GLint, t, GLint, r, GLint, q); \
    HookWrapper2(void, glmultitexcoord4ivarb, GLenum, target, const GLint *, v); \
    HookWrapper5(void, glmultitexcoord4sarb, GLenum, target, GLshort, s, GLshort, t, GLshort, r, GLshort, q); \
    HookWrapper2(void, glmultitexcoord4svarb, GLenum, target, const GLshort *, v); \
    HookWrapper1(void, glmaxshadercompilerthreadsarb, GLuint, count); \
    HookWrapper4(void, glgetnmapdvarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLdouble *, v); \
    HookWrapper4(void, glgetnmapfvarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLfloat *, v); \
    HookWrapper4(void, glgetnmapivarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLint *, v); \
    HookWrapper3(void, glgetnpixelmapfvarb, GLenum, map, GLsizei, bufSize, GLfloat *, values); \
    HookWrapper3(void, glgetnpixelmapuivarb, GLenum, map, GLsizei, bufSize, GLuint *, values); \
    HookWrapper3(void, glgetnpixelmapusvarb, GLenum, map, GLsizei, bufSize, GLushort *, values); \
    HookWrapper2(void, glgetnpolygonstipplearb, GLsizei, bufSize, GLubyte *, pattern); \
    HookWrapper5(void, glgetncolortablearb, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, table); \
    HookWrapper5(void, glgetnconvolutionfilterarb, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, image); \
    HookWrapper8(void, glgetnseparablefilterarb, GLenum, target, GLenum, format, GLenum, type, GLsizei, rowBufSize, void *, row, GLsizei, columnBufSize, void *, column, void *, span); \
    HookWrapper6(void, glgetnhistogramarb, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper6(void, glgetnminmaxarb, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper4(void, glframebuffersamplelocationsfvarb, GLenum, target, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper4(void, glnamedframebuffersamplelocationsfvarb, GLuint, framebuffer, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper0(void, glevaluatedepthvaluesarb); \
    HookWrapper1(void, gldeleteobjectarb, GLhandleARB, obj); \
    HookWrapper1(GLhandleARB, glgethandlearb, GLenum, pname); \
    HookWrapper2(void, gldetachobjectarb, GLhandleARB, containerObj, GLhandleARB, attachedObj); \
    HookWrapper1(GLhandleARB, glcreateshaderobjectarb, GLenum, shaderType); \
    HookWrapper4(void, glshadersourcearb, GLhandleARB, shaderObj, GLsizei, count, const GLcharARB **, string, const GLint *, length); \
    HookWrapper1(void, glcompileshaderarb, GLhandleARB, shaderObj); \
    HookWrapper0(GLhandleARB, glcreateprogramobjectarb); \
    HookWrapper2(void, glattachobjectarb, GLhandleARB, containerObj, GLhandleARB, obj); \
    HookWrapper1(void, gllinkprogramarb, GLhandleARB, programObj); \
    HookWrapper1(void, gluseprogramobjectarb, GLhandleARB, programObj); \
    HookWrapper1(void, glvalidateprogramarb, GLhandleARB, programObj); \
    HookWrapper2(void, gluniform1farb, GLint, location, GLfloat, v0); \
    HookWrapper3(void, gluniform2farb, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void, gluniform3farb, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper5(void, gluniform4farb, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper2(void, gluniform1iarb, GLint, location, GLint, v0); \
    HookWrapper3(void, gluniform2iarb, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void, gluniform3iarb, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper5(void, gluniform4iarb, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper3(void, gluniform1fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform2fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform3fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform4fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform1ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform2ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform3ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform4ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, gluniformmatrix2fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix3fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix4fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper3(void, glgetobjectparameterfvarb, GLhandleARB, obj, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetobjectparameterivarb, GLhandleARB, obj, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetinfologarb, GLhandleARB, obj, GLsizei, maxLength, GLsizei *, length, GLcharARB *, infoLog); \
    HookWrapper4(void, glgetattachedobjectsarb, GLhandleARB, containerObj, GLsizei, maxCount, GLsizei *, count, GLhandleARB *, obj); \
    HookWrapper2(GLint, glgetuniformlocationarb, GLhandleARB, programObj, const GLcharARB *, name); \
    HookWrapper7(void, glgetactiveuniformarb, GLhandleARB, programObj, GLuint, index, GLsizei, maxLength, GLsizei *, length, GLint *, size, GLenum *, type, GLcharARB *, name); \
    HookWrapper3(void, glgetuniformfvarb, GLhandleARB, programObj, GLint, location, GLfloat *, params); \
    HookWrapper3(void, glgetuniformivarb, GLhandleARB, programObj, GLint, location, GLint *, params); \
    HookWrapper4(void, glgetshadersourcearb, GLhandleARB, obj, GLsizei, maxLength, GLsizei *, length, GLcharARB *, source); \
    HookWrapper1(void, glloadtransposematrixfarb, const GLfloat *, m); \
    HookWrapper1(void, glloadtransposematrixdarb, const GLdouble *, m); \
    HookWrapper1(void, glmulttransposematrixfarb, const GLfloat *, m); \
    HookWrapper1(void, glmulttransposematrixdarb, const GLdouble *, m); \
    HookWrapper2(void, glweightbvarb, GLint, size, const GLbyte *, weights); \
    HookWrapper2(void, glweightsvarb, GLint, size, const GLshort *, weights); \
    HookWrapper2(void, glweightivarb, GLint, size, const GLint *, weights); \
    HookWrapper2(void, glweightfvarb, GLint, size, const GLfloat *, weights); \
    HookWrapper2(void, glweightdvarb, GLint, size, const GLdouble *, weights); \
    HookWrapper2(void, glweightubvarb, GLint, size, const GLubyte *, weights); \
    HookWrapper2(void, glweightusvarb, GLint, size, const GLushort *, weights); \
    HookWrapper2(void, glweightuivarb, GLint, size, const GLuint *, weights); \
    HookWrapper4(void, glweightpointerarb, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, glvertexblendarb, GLint, count); \
    HookWrapper5(void, glvertexattrib4nubarb, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper3(void, glgetvertexattribdvarb, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glgetvertexattribfvarb, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribivarb, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribpointervarb, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper3(void, glbindattriblocationarb, GLhandleARB, programObj, GLuint, index, const GLcharARB *, name); \
    HookWrapper7(void, glgetactiveattribarb, GLhandleARB, programObj, GLuint, index, GLsizei, maxLength, GLsizei *, length, GLint *, size, GLenum *, type, GLcharARB *, name); \
    HookWrapper2(GLint, glgetattriblocationarb, GLhandleARB, programObj, const GLcharARB *, name); \
    HookWrapper2(void, glwindowpos2darb, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dvarb, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2farb, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fvarb, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2iarb, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2ivarb, const GLint *, v); \
    HookWrapper2(void, glwindowpos2sarb, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2svarb, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3darb, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dvarb, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3farb, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fvarb, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3iarb, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3ivarb, const GLint *, v); \
    HookWrapper3(void, glwindowpos3sarb, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3svarb, const GLshort *, v); \
    HookWrapper2(void, glmultitexcoord1boes, GLenum, texture, GLbyte, s); \
    HookWrapper2(void, glmultitexcoord1bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper3(void, glmultitexcoord2boes, GLenum, texture, GLbyte, s, GLbyte, t); \
    HookWrapper2(void, glmultitexcoord2bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper4(void, glmultitexcoord3boes, GLenum, texture, GLbyte, s, GLbyte, t, GLbyte, r); \
    HookWrapper2(void, glmultitexcoord3bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper5(void, glmultitexcoord4boes, GLenum, texture, GLbyte, s, GLbyte, t, GLbyte, r, GLbyte, q); \
    HookWrapper2(void, glmultitexcoord4bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper1(void, gltexcoord1boes, GLbyte, s); \
    HookWrapper1(void, gltexcoord1bvoes, const GLbyte *, coords); \
    HookWrapper2(void, gltexcoord2boes, GLbyte, s, GLbyte, t); \
    HookWrapper1(void, gltexcoord2bvoes, const GLbyte *, coords); \
    HookWrapper3(void, gltexcoord3boes, GLbyte, s, GLbyte, t, GLbyte, r); \
    HookWrapper1(void, gltexcoord3bvoes, const GLbyte *, coords); \
    HookWrapper4(void, gltexcoord4boes, GLbyte, s, GLbyte, t, GLbyte, r, GLbyte, q); \
    HookWrapper1(void, gltexcoord4bvoes, const GLbyte *, coords); \
    HookWrapper2(void, glvertex2boes, GLbyte, x, GLbyte, y); \
    HookWrapper1(void, glvertex2bvoes, const GLbyte *, coords); \
    HookWrapper3(void, glvertex3boes, GLbyte, x, GLbyte, y, GLbyte, z); \
    HookWrapper1(void, glvertex3bvoes, const GLbyte *, coords); \
    HookWrapper4(void, glvertex4boes, GLbyte, x, GLbyte, y, GLbyte, z, GLbyte, w); \
    HookWrapper1(void, glvertex4bvoes, const GLbyte *, coords); \
    HookWrapper2(void, glalphafuncxoes, GLenum, func, GLfixed, ref); \
    HookWrapper4(void, glclearcolorxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper1(void, glcleardepthxoes, GLfixed, depth); \
    HookWrapper2(void, glclipplanexoes, GLenum, plane, const GLfixed *, equation); \
    HookWrapper4(void, glcolor4xoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper2(void, gldepthrangexoes, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glfogxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glfogxvoes, GLenum, pname, const GLfixed *, param); \
    HookWrapper6(void, glfrustumxoes, GLfixed, l, GLfixed, r, GLfixed, b, GLfixed, t, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glgetclipplanexoes, GLenum, plane, GLfixed *, equation); \
    HookWrapper2(void, glgetfixedvoes, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgettexenvxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgettexparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper2(void, gllightmodelxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, gllightmodelxvoes, GLenum, pname, const GLfixed *, param); \
    HookWrapper3(void, gllightxoes, GLenum, light, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gllightxvoes, GLenum, light, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, gllinewidthxoes, GLfixed, width); \
    HookWrapper1(void, glloadmatrixxoes, const GLfixed *, m); \
    HookWrapper3(void, glmaterialxoes, GLenum, face, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glmaterialxvoes, GLenum, face, GLenum, pname, const GLfixed *, param); \
    HookWrapper1(void, glmultmatrixxoes, const GLfixed *, m); \
    HookWrapper5(void, glmultitexcoord4xoes, GLenum, texture, GLfixed, s, GLfixed, t, GLfixed, r, GLfixed, q); \
    HookWrapper3(void, glnormal3xoes, GLfixed, nx, GLfixed, ny, GLfixed, nz); \
    HookWrapper6(void, glorthoxoes, GLfixed, l, GLfixed, r, GLfixed, b, GLfixed, t, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glpointparameterxvoes, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glpointsizexoes, GLfixed, size); \
    HookWrapper2(void, glpolygonoffsetxoes, GLfixed, factor, GLfixed, units); \
    HookWrapper4(void, glrotatexoes, GLfixed, angle, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper3(void, glscalexoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper3(void, gltexenvxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexenvxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper3(void, gltexparameterxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexparameterxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper3(void, gltranslatexoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper2(void, glaccumxoes, GLenum, op, GLfixed, value); \
    HookWrapper7(void, glbitmapxoes, GLsizei, width, GLsizei, height, GLfixed, xorig, GLfixed, yorig, GLfixed, xmove, GLfixed, ymove, const GLubyte *, bitmap); \
    HookWrapper4(void, glblendcolorxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper4(void, glclearaccumxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper3(void, glcolor3xoes, GLfixed, red, GLfixed, green, GLfixed, blue); \
    HookWrapper1(void, glcolor3xvoes, const GLfixed *, components); \
    HookWrapper1(void, glcolor4xvoes, const GLfixed *, components); \
    HookWrapper3(void, glconvolutionparameterxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glconvolutionparameterxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glevalcoord1xoes, GLfixed, u); \
    HookWrapper1(void, glevalcoord1xvoes, const GLfixed *, coords); \
    HookWrapper2(void, glevalcoord2xoes, GLfixed, u, GLfixed, v); \
    HookWrapper1(void, glevalcoord2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glfeedbackbufferxoes, GLsizei, n, GLenum, type, const GLfixed *, buffer); \
    HookWrapper3(void, glgetconvolutionparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgethistogramparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgetlightxoes, GLenum, light, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgetmapxvoes, GLenum, target, GLenum, query, GLfixed *, v); \
    HookWrapper3(void, glgetmaterialxoes, GLenum, face, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glgetpixelmapxv, GLenum, map, GLint, size, GLfixed *, values); \
    HookWrapper3(void, glgettexgenxvoes, GLenum, coord, GLenum, pname, GLfixed *, params); \
    HookWrapper4(void, glgettexlevelparameterxvoes, GLenum, target, GLint, level, GLenum, pname, GLfixed *, params); \
    HookWrapper1(void, glindexxoes, GLfixed, component); \
    HookWrapper1(void, glindexxvoes, const GLfixed *, component); \
    HookWrapper1(void, glloadtransposematrixxoes, const GLfixed *, m); \
    HookWrapper6(void, glmap1xoes, GLenum, target, GLfixed, u1, GLfixed, u2, GLint, stride, GLint, order, GLfixed, points); \
    HookWrapper10(void, glmap2xoes, GLenum, target, GLfixed, u1, GLfixed, u2, GLint, ustride, GLint, uorder, GLfixed, v1, GLfixed, v2, GLint, vstride, GLint, vorder, GLfixed, points); \
    HookWrapper3(void, glmapgrid1xoes, GLint, n, GLfixed, u1, GLfixed, u2); \
    HookWrapper5(void, glmapgrid2xoes, GLint, n, GLfixed, u1, GLfixed, u2, GLfixed, v1, GLfixed, v2); \
    HookWrapper1(void, glmulttransposematrixxoes, const GLfixed *, m); \
    HookWrapper2(void, glmultitexcoord1xoes, GLenum, texture, GLfixed, s); \
    HookWrapper2(void, glmultitexcoord1xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper3(void, glmultitexcoord2xoes, GLenum, texture, GLfixed, s, GLfixed, t); \
    HookWrapper2(void, glmultitexcoord2xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper4(void, glmultitexcoord3xoes, GLenum, texture, GLfixed, s, GLfixed, t, GLfixed, r); \
    HookWrapper2(void, glmultitexcoord3xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper2(void, glmultitexcoord4xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper1(void, glnormal3xvoes, const GLfixed *, coords); \
    HookWrapper1(void, glpassthroughxoes, GLfixed, token); \
    HookWrapper3(void, glpixelmapx, GLenum, map, GLint, size, const GLfixed *, values); \
    HookWrapper2(void, glpixelstorex, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glpixeltransferxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glpixelzoomxoes, GLfixed, xfactor, GLfixed, yfactor); \
    HookWrapper3(void, glprioritizetexturesxoes, GLsizei, n, const GLuint *, textures, const GLfixed *, priorities); \
    HookWrapper2(void, glrasterpos2xoes, GLfixed, x, GLfixed, y); \
    HookWrapper1(void, glrasterpos2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glrasterpos3xoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper1(void, glrasterpos3xvoes, const GLfixed *, coords); \
    HookWrapper4(void, glrasterpos4xoes, GLfixed, x, GLfixed, y, GLfixed, z, GLfixed, w); \
    HookWrapper1(void, glrasterpos4xvoes, const GLfixed *, coords); \
    HookWrapper4(void, glrectxoes, GLfixed, x1, GLfixed, y1, GLfixed, x2, GLfixed, y2); \
    HookWrapper2(void, glrectxvoes, const GLfixed *, v1, const GLfixed *, v2); \
    HookWrapper1(void, gltexcoord1xoes, GLfixed, s); \
    HookWrapper1(void, gltexcoord1xvoes, const GLfixed *, coords); \
    HookWrapper2(void, gltexcoord2xoes, GLfixed, s, GLfixed, t); \
    HookWrapper1(void, gltexcoord2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, gltexcoord3xoes, GLfixed, s, GLfixed, t, GLfixed, r); \
    HookWrapper1(void, gltexcoord3xvoes, const GLfixed *, coords); \
    HookWrapper4(void, gltexcoord4xoes, GLfixed, s, GLfixed, t, GLfixed, r, GLfixed, q); \
    HookWrapper1(void, gltexcoord4xvoes, const GLfixed *, coords); \
    HookWrapper3(void, gltexgenxoes, GLenum, coord, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexgenxvoes, GLenum, coord, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glvertex2xoes, GLfixed, x); \
    HookWrapper1(void, glvertex2xvoes, const GLfixed *, coords); \
    HookWrapper2(void, glvertex3xoes, GLfixed, x, GLfixed, y); \
    HookWrapper1(void, glvertex3xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glvertex4xoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper1(void, glvertex4xvoes, const GLfixed *, coords); \
    HookWrapper2(GLbitfield, glquerymatrixxoes, GLfixed *, mantissa, GLint *, exponent); \
    HookWrapper1(void, glcleardepthfoes, GLclampf, depth); \
    HookWrapper2(void, glclipplanefoes, GLenum, plane, const GLfloat *, equation); \
    HookWrapper2(void, gldepthrangefoes, GLclampf, n, GLclampf, f); \
    HookWrapper6(void, glfrustumfoes, GLfloat, l, GLfloat, r, GLfloat, b, GLfloat, t, GLfloat, n, GLfloat, f); \
    HookWrapper2(void, glgetclipplanefoes, GLenum, plane, GLfloat *, equation); \
    HookWrapper6(void, glorthofoes, GLfloat, l, GLfloat, r, GLfloat, b, GLfloat, t, GLfloat, n, GLfloat, f); \
    HookWrapper1(void, gltbuffermask3dfx, GLuint, mask); \
    HookWrapper5(void, gldebugmessageenableamd, GLenum, category, GLenum, severity, GLsizei, count, const GLuint *, ids, GLboolean, enabled); \
    HookWrapper5(void, gldebugmessageinsertamd, GLenum, category, GLenum, severity, GLuint, id, GLsizei, length, const GLchar *, buf); \
    HookWrapper2(void, gldebugmessagecallbackamd, GLDEBUGPROCAMD, callback, void *, userParam); \
    HookWrapper7(GLuint, glgetdebugmessagelogamd, GLuint, count, GLsizei, bufsize, GLenum *, categories, GLuint *, severities, GLuint *, ids, GLsizei *, lengths, GLchar *, message); \
    HookWrapper3(void, glblendfuncindexedamd, GLuint, buf, GLenum, src, GLenum, dst); \
    HookWrapper5(void, glblendfuncseparateindexedamd, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
    HookWrapper2(void, glblendequationindexedamd, GLuint, buf, GLenum, mode); \
    HookWrapper3(void, glblendequationseparateindexedamd, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper2(void, gluniform1i64nv, GLint, location, GLint64EXT, x); \
    HookWrapper3(void, gluniform2i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper4(void, gluniform3i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper5(void, gluniform4i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper3(void, gluniform1i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform2i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform3i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform4i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper2(void, gluniform1ui64nv, GLint, location, GLuint64EXT, x); \
    HookWrapper3(void, gluniform2ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper4(void, gluniform3ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper5(void, gluniform4ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper3(void, gluniform1ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform2ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform3ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform4ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glgetuniformi64vnv, GLuint, program, GLint, location, GLint64EXT *, params); \
    HookWrapper3(void, glgetuniformui64vnv, GLuint, program, GLint, location, GLuint64EXT *, params); \
    HookWrapper3(void, glprogramuniform1i64nv, GLuint, program, GLint, location, GLint64EXT, x); \
    HookWrapper4(void, glprogramuniform2i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper5(void, glprogramuniform3i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper6(void, glprogramuniform4i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper4(void, glprogramuniform1i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform2i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform3i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform4i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, glprogramuniform1ui64nv, GLuint, program, GLint, location, GLuint64EXT, x); \
    HookWrapper4(void, glprogramuniform2ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper5(void, glprogramuniform3ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper6(void, glprogramuniform4ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper4(void, glprogramuniform1ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform2ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform3ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform4ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glvertexattribparameteriamd, GLuint, index, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultidrawarraysindirectamd, GLenum, mode, const void *, indirect, GLsizei, primcount, GLsizei, stride); \
    HookWrapper5(void, glmultidrawelementsindirectamd, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, primcount, GLsizei, stride); \
    HookWrapper3(void, glgennamesamd, GLenum, identifier, GLuint, num, GLuint *, names); \
    HookWrapper3(void, gldeletenamesamd, GLenum, identifier, GLuint, num, const GLuint *, names); \
    HookWrapper2(GLboolean, glisnameamd, GLenum, identifier, GLuint, name); \
    HookWrapper4(void, glqueryobjectparameteruiamd, GLenum, target, GLuint, id, GLenum, pname, GLuint, param); \
    HookWrapper3(void, glgetperfmonitorgroupsamd, GLint *, numGroups, GLsizei, groupsSize, GLuint *, groups); \
    HookWrapper5(void, glgetperfmonitorcountersamd, GLuint, group, GLint *, numCounters, GLint *, maxActiveCounters, GLsizei, counterSize, GLuint *, counters); \
    HookWrapper4(void, glgetperfmonitorgroupstringamd, GLuint, group, GLsizei, bufSize, GLsizei *, length, GLchar *, groupString); \
    HookWrapper5(void, glgetperfmonitorcounterstringamd, GLuint, group, GLuint, counter, GLsizei, bufSize, GLsizei *, length, GLchar *, counterString); \
    HookWrapper4(void, glgetperfmonitorcounterinfoamd, GLuint, group, GLuint, counter, GLenum, pname, void *, data); \
    HookWrapper2(void, glgenperfmonitorsamd, GLsizei, n, GLuint *, monitors); \
    HookWrapper2(void, gldeleteperfmonitorsamd, GLsizei, n, GLuint *, monitors); \
    HookWrapper5(void, glselectperfmonitorcountersamd, GLuint, monitor, GLboolean, enable, GLuint, group, GLint, numCounters, GLuint *, counterList); \
    HookWrapper1(void, glbeginperfmonitoramd, GLuint, monitor); \
    HookWrapper1(void, glendperfmonitoramd, GLuint, monitor); \
    HookWrapper5(void, glgetperfmonitorcounterdataamd, GLuint, monitor, GLenum, pname, GLsizei, dataSize, GLuint *, data, GLint *, bytesWritten); \
    HookWrapper3(void, glsetmultisamplefvamd, GLenum, pname, GLuint, index, const GLfloat *, val); \
    HookWrapper7(void, gltexstoragesparseamd, GLenum, target, GLenum, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, layers, GLbitfield, flags); \
    HookWrapper8(void, gltexturestoragesparseamd, GLuint, texture, GLenum, target, GLenum, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, layers, GLbitfield, flags); \
    HookWrapper2(void, glstencilopvalueamd, GLenum, face, GLuint, value); \
    HookWrapper1(void, gltessellationfactoramd, GLfloat, factor); \
    HookWrapper1(void, gltessellationmodeamd, GLenum, mode); \
    HookWrapper2(void, glelementpointerapple, GLenum, type, const void *, pointer); \
    HookWrapper3(void, gldrawelementarrayapple, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper5(void, gldrawrangeelementarrayapple, GLenum, mode, GLuint, start, GLuint, end, GLint, first, GLsizei, count); \
    HookWrapper4(void, glmultidrawelementarrayapple, GLenum, mode, const GLint *, first, const GLsizei *, count, GLsizei, primcount); \
    HookWrapper6(void, glmultidrawrangeelementarrayapple, GLenum, mode, GLuint, start, GLuint, end, const GLint *, first, const GLsizei *, count, GLsizei, primcount); \
    HookWrapper2(void, glgenfencesapple, GLsizei, n, GLuint *, fences); \
    HookWrapper2(void, gldeletefencesapple, GLsizei, n, const GLuint *, fences); \
    HookWrapper1(void, glsetfenceapple, GLuint, fence); \
    HookWrapper1(GLboolean, glisfenceapple, GLuint, fence); \
    HookWrapper1(GLboolean, gltestfenceapple, GLuint, fence); \
    HookWrapper1(void, glfinishfenceapple, GLuint, fence); \
    HookWrapper2(GLboolean, gltestobjectapple, GLenum, object, GLuint, name); \
    HookWrapper2(void, glfinishobjectapple, GLenum, object, GLint, name); \
    HookWrapper3(void, glbufferparameteriapple, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glflushmappedbufferrangeapple, GLenum, target, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper3(GLenum, globjectpurgeableapple, GLenum, objectType, GLuint, name, GLenum, option); \
    HookWrapper3(GLenum, globjectunpurgeableapple, GLenum, objectType, GLuint, name, GLenum, option); \
    HookWrapper4(void, glgetobjectparameterivapple, GLenum, objectType, GLuint, name, GLenum, pname, GLint *, params); \
    HookWrapper3(void, gltexturerangeapple, GLenum, target, GLsizei, length, const void *, pointer); \
    HookWrapper3(void, glgettexparameterpointervapple, GLenum, target, GLenum, pname, void **, params); \
    HookWrapper1(void, glbindvertexarrayapple, GLuint, array); \
    HookWrapper2(void, gldeletevertexarraysapple, GLsizei, n, const GLuint *, arrays); \
    HookWrapper2(void, glgenvertexarraysapple, GLsizei, n, GLuint *, arrays); \
    HookWrapper1(GLboolean, glisvertexarrayapple, GLuint, array); \
    HookWrapper2(void, glvertexarrayrangeapple, GLsizei, length, void *, pointer); \
    HookWrapper2(void, glflushvertexarrayrangeapple, GLsizei, length, void *, pointer); \
    HookWrapper2(void, glvertexarrayparameteriapple, GLenum, pname, GLint, param); \
    HookWrapper2(void, glenablevertexattribapple, GLuint, index, GLenum, pname); \
    HookWrapper2(void, gldisablevertexattribapple, GLuint, index, GLenum, pname); \
    HookWrapper2(GLboolean, glisvertexattribenabledapple, GLuint, index, GLenum, pname); \
    HookWrapper7(void, glmapvertexattrib1dapple, GLuint, index, GLuint, size, GLdouble, u1, GLdouble, u2, GLint, stride, GLint, order, const GLdouble *, points); \
    HookWrapper7(void, glmapvertexattrib1fapple, GLuint, index, GLuint, size, GLfloat, u1, GLfloat, u2, GLint, stride, GLint, order, const GLfloat *, points); \
    HookWrapper11(void, glmapvertexattrib2dapple, GLuint, index, GLuint, size, GLdouble, u1, GLdouble, u2, GLint, ustride, GLint, uorder, GLdouble, v1, GLdouble, v2, GLint, vstride, GLint, vorder, const GLdouble *, points); \
    HookWrapper11(void, glmapvertexattrib2fapple, GLuint, index, GLuint, size, GLfloat, u1, GLfloat, u2, GLint, ustride, GLint, uorder, GLfloat, v1, GLfloat, v2, GLint, vstride, GLint, vorder, const GLfloat *, points); \
    HookWrapper2(void, gldrawbuffersati, GLsizei, n, const GLenum *, bufs); \
    HookWrapper2(void, glelementpointerati, GLenum, type, const void *, pointer); \
    HookWrapper2(void, gldrawelementarrayati, GLenum, mode, GLsizei, count); \
    HookWrapper4(void, gldrawrangeelementarrayati, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count); \
    HookWrapper2(void, gltexbumpparameterivati, GLenum, pname, const GLint *, param); \
    HookWrapper2(void, gltexbumpparameterfvati, GLenum, pname, const GLfloat *, param); \
    HookWrapper2(void, glgettexbumpparameterivati, GLenum, pname, GLint *, param); \
    HookWrapper2(void, glgettexbumpparameterfvati, GLenum, pname, GLfloat *, param); \
    HookWrapper1(GLuint, glgenfragmentshadersati, GLuint, range); \
    HookWrapper1(void, glbindfragmentshaderati, GLuint, id); \
    HookWrapper1(void, gldeletefragmentshaderati, GLuint, id); \
    HookWrapper0(void, glbeginfragmentshaderati); \
    HookWrapper0(void, glendfragmentshaderati); \
    HookWrapper3(void, glpasstexcoordati, GLuint, dst, GLuint, coord, GLenum, swizzle); \
    HookWrapper3(void, glsamplemapati, GLuint, dst, GLuint, interp, GLenum, swizzle); \
    HookWrapper7(void, glcolorfragmentop1ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod); \
    HookWrapper10(void, glcolorfragmentop2ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod); \
    HookWrapper13(void, glcolorfragmentop3ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod, GLuint, arg3, GLuint, arg3Rep, GLuint, arg3Mod); \
    HookWrapper6(void, glalphafragmentop1ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod); \
    HookWrapper9(void, glalphafragmentop2ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod); \
    HookWrapper12(void, glalphafragmentop3ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod, GLuint, arg3, GLuint, arg3Rep, GLuint, arg3Mod); \
    HookWrapper2(void, glsetfragmentshaderconstantati, GLuint, dst, const GLfloat *, value); \
    HookWrapper1(void *, glmapobjectbufferati, GLuint, buffer); \
    HookWrapper1(void, glunmapobjectbufferati, GLuint, buffer); \
    HookWrapper2(void, glpntrianglesiati, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpntrianglesfati, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glstencilopseparateati, GLenum, face, GLenum, sfail, GLenum, dpfail, GLenum, dppass); \
    HookWrapper4(void, glstencilfuncseparateati, GLenum, frontfunc, GLenum, backfunc, GLint, ref, GLuint, mask); \
    HookWrapper3(GLuint, glnewobjectbufferati, GLsizei, size, const void *, pointer, GLenum, usage); \
    HookWrapper1(GLboolean, glisobjectbufferati, GLuint, buffer); \
    HookWrapper5(void, glupdateobjectbufferati, GLuint, buffer, GLuint, offset, GLsizei, size, const void *, pointer, GLenum, preserve); \
    HookWrapper3(void, glgetobjectbufferfvati, GLuint, buffer, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetobjectbufferivati, GLuint, buffer, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glfreeobjectbufferati, GLuint, buffer); \
    HookWrapper6(void, glarrayobjectati, GLenum, array, GLint, size, GLenum, type, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetarrayobjectfvati, GLenum, array, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetarrayobjectivati, GLenum, array, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glvariantarrayobjectati, GLuint, id, GLenum, type, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetvariantarrayobjectfvati, GLuint, id, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvariantarrayobjectivati, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper7(void, glvertexattribarrayobjectati, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetvertexattribarrayobjectfvati, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribarrayobjectivati, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glvertexstream1sati, GLenum, stream, GLshort, x); \
    HookWrapper2(void, glvertexstream1svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper2(void, glvertexstream1iati, GLenum, stream, GLint, x); \
    HookWrapper2(void, glvertexstream1ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper2(void, glvertexstream1fati, GLenum, stream, GLfloat, x); \
    HookWrapper2(void, glvertexstream1fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper2(void, glvertexstream1dati, GLenum, stream, GLdouble, x); \
    HookWrapper2(void, glvertexstream1dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper3(void, glvertexstream2sati, GLenum, stream, GLshort, x, GLshort, y); \
    HookWrapper2(void, glvertexstream2svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper3(void, glvertexstream2iati, GLenum, stream, GLint, x, GLint, y); \
    HookWrapper2(void, glvertexstream2ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper3(void, glvertexstream2fati, GLenum, stream, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glvertexstream2fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper3(void, glvertexstream2dati, GLenum, stream, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glvertexstream2dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper4(void, glvertexstream3sati, GLenum, stream, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glvertexstream3svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper4(void, glvertexstream3iati, GLenum, stream, GLint, x, GLint, y, GLint, z); \
    HookWrapper2(void, glvertexstream3ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper4(void, glvertexstream3fati, GLenum, stream, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glvertexstream3fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper4(void, glvertexstream3dati, GLenum, stream, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glvertexstream3dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper5(void, glvertexstream4sati, GLenum, stream, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glvertexstream4svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper5(void, glvertexstream4iati, GLenum, stream, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper2(void, glvertexstream4ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper5(void, glvertexstream4fati, GLenum, stream, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glvertexstream4fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper5(void, glvertexstream4dati, GLenum, stream, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glvertexstream4dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper4(void, glnormalstream3bati, GLenum, stream, GLbyte, nx, GLbyte, ny, GLbyte, nz); \
    HookWrapper2(void, glnormalstream3bvati, GLenum, stream, const GLbyte *, coords); \
    HookWrapper4(void, glnormalstream3sati, GLenum, stream, GLshort, nx, GLshort, ny, GLshort, nz); \
    HookWrapper2(void, glnormalstream3svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper4(void, glnormalstream3iati, GLenum, stream, GLint, nx, GLint, ny, GLint, nz); \
    HookWrapper2(void, glnormalstream3ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper4(void, glnormalstream3fati, GLenum, stream, GLfloat, nx, GLfloat, ny, GLfloat, nz); \
    HookWrapper2(void, glnormalstream3fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper4(void, glnormalstream3dati, GLenum, stream, GLdouble, nx, GLdouble, ny, GLdouble, nz); \
    HookWrapper2(void, glnormalstream3dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper1(void, glclientactivevertexstreamati, GLenum, stream); \
    HookWrapper2(void, glvertexblendenviati, GLenum, pname, GLint, param); \
    HookWrapper2(void, glvertexblendenvfati, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gluniformbufferext, GLuint, program, GLint, location, GLuint, buffer); \
    HookWrapper2(GLint, glgetuniformbuffersizeext, GLuint, program, GLint, location); \
    HookWrapper2(GLintptr, glgetuniformoffsetext, GLuint, program, GLint, location); \
    HookWrapper4(void, glblendfuncseparateext, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper6(void, glcolorsubtableext, GLenum, target, GLsizei, start, GLsizei, count, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper5(void, glcopycolorsubtableext, GLenum, target, GLsizei, start, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper2(void, gllockarraysext, GLint, first, GLsizei, count); \
    HookWrapper0(void, glunlockarraysext); \
    HookWrapper6(void, glconvolutionfilter1dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper7(void, glconvolutionfilter2dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper3(void, glconvolutionparameterfext, GLenum, target, GLenum, pname, GLfloat, params); \
    HookWrapper3(void, glconvolutionparameterfvext, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glconvolutionparameteriext, GLenum, target, GLenum, pname, GLint, params); \
    HookWrapper3(void, glconvolutionparameterivext, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopyconvolutionfilter1dext, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glcopyconvolutionfilter2dext, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glgetconvolutionfilterext, GLenum, target, GLenum, format, GLenum, type, void *, image); \
    HookWrapper3(void, glgetconvolutionparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetconvolutionparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glgetseparablefilterext, GLenum, target, GLenum, format, GLenum, type, void *, row, void *, column, void *, span); \
    HookWrapper8(void, glseparablefilter2dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, row, const void *, column); \
    HookWrapper3(void, gltangent3bext, GLbyte, tx, GLbyte, ty, GLbyte, tz); \
    HookWrapper1(void, gltangent3bvext, const GLbyte *, v); \
    HookWrapper3(void, gltangent3dext, GLdouble, tx, GLdouble, ty, GLdouble, tz); \
    HookWrapper1(void, gltangent3dvext, const GLdouble *, v); \
    HookWrapper3(void, gltangent3fext, GLfloat, tx, GLfloat, ty, GLfloat, tz); \
    HookWrapper1(void, gltangent3fvext, const GLfloat *, v); \
    HookWrapper3(void, gltangent3iext, GLint, tx, GLint, ty, GLint, tz); \
    HookWrapper1(void, gltangent3ivext, const GLint *, v); \
    HookWrapper3(void, gltangent3sext, GLshort, tx, GLshort, ty, GLshort, tz); \
    HookWrapper1(void, gltangent3svext, const GLshort *, v); \
    HookWrapper3(void, glbinormal3bext, GLbyte, bx, GLbyte, by, GLbyte, bz); \
    HookWrapper1(void, glbinormal3bvext, const GLbyte *, v); \
    HookWrapper3(void, glbinormal3dext, GLdouble, bx, GLdouble, by, GLdouble, bz); \
    HookWrapper1(void, glbinormal3dvext, const GLdouble *, v); \
    HookWrapper3(void, glbinormal3fext, GLfloat, bx, GLfloat, by, GLfloat, bz); \
    HookWrapper1(void, glbinormal3fvext, const GLfloat *, v); \
    HookWrapper3(void, glbinormal3iext, GLint, bx, GLint, by, GLint, bz); \
    HookWrapper1(void, glbinormal3ivext, const GLint *, v); \
    HookWrapper3(void, glbinormal3sext, GLshort, bx, GLshort, by, GLshort, bz); \
    HookWrapper1(void, glbinormal3svext, const GLshort *, v); \
    HookWrapper3(void, gltangentpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glbinormalpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper7(void, glcopyteximage1dext, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper8(void, glcopyteximage2dext, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper6(void, glcopytexsubimage1dext, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glcopytexsubimage2dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper9(void, glcopytexsubimage3dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glcullparameterdvext, GLenum, pname, GLdouble *, params); \
    HookWrapper2(void, glcullparameterfvext, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glmatrixloadfext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloaddext, GLenum, mode, const GLdouble *, m); \
    HookWrapper2(void, glmatrixmultfext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmultdext, GLenum, mode, const GLdouble *, m); \
    HookWrapper1(void, glmatrixloadidentityext, GLenum, mode); \
    HookWrapper5(void, glmatrixrotatefext, GLenum, mode, GLfloat, angle, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper5(void, glmatrixrotatedext, GLenum, mode, GLdouble, angle, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper4(void, glmatrixscalefext, GLenum, mode, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glmatrixscaledext, GLenum, mode, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper4(void, glmatrixtranslatefext, GLenum, mode, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glmatrixtranslatedext, GLenum, mode, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper7(void, glmatrixfrustumext, GLenum, mode, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper7(void, glmatrixorthoext, GLenum, mode, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper1(void, glmatrixpopext, GLenum, mode); \
    HookWrapper1(void, glmatrixpushext, GLenum, mode); \
    HookWrapper1(void, glclientattribdefaultext, GLbitfield, mask); \
    HookWrapper1(void, glpushclientattribdefaultext, GLbitfield, mask); \
    HookWrapper5(void, glmultitexcoordpointerext, GLenum, texunit, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, glmultitexenvfext, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glmultitexenvfvext, GLenum, texunit, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glmultitexenviext, GLenum, texunit, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultitexenvivext, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glmultitexgendext, GLenum, texunit, GLenum, coord, GLenum, pname, GLdouble, param); \
    HookWrapper4(void, glmultitexgendvext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLdouble *, params); \
    HookWrapper4(void, glmultitexgenfext, GLenum, texunit, GLenum, coord, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glmultitexgenfvext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glmultitexgeniext, GLenum, texunit, GLenum, coord, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultitexgenivext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glgetmultitexenvfvext, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmultitexenvivext, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetmultitexgendvext, GLenum, texunit, GLenum, coord, GLenum, pname, GLdouble *, params); \
    HookWrapper4(void, glgetmultitexgenfvext, GLenum, texunit, GLenum, coord, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmultitexgenivext, GLenum, texunit, GLenum, coord, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glenableclientstateindexedext, GLenum, array, GLuint, index); \
    HookWrapper2(void, gldisableclientstateindexedext, GLenum, array, GLuint, index); \
    HookWrapper2(void, glmatrixloadtransposefext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloadtransposedext, GLenum, mode, const GLdouble *, m); \
    HookWrapper2(void, glmatrixmulttransposefext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmulttransposedext, GLenum, mode, const GLdouble *, m); \
    HookWrapper5(void, glnamedprogramlocalparameters4fvext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper7(void, glnamedprogramlocalparameteri4iext, GLuint, program, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper4(void, glnamedprogramlocalparameteri4ivext, GLuint, program, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper5(void, glnamedprogramlocalparametersi4ivext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper7(void, glnamedprogramlocalparameteri4uiext, GLuint, program, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper4(void, glnamedprogramlocalparameteri4uivext, GLuint, program, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper5(void, glnamedprogramlocalparametersi4uivext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameteriivext, GLuint, program, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameteriuivext, GLuint, program, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper2(void, glenableclientstateiext, GLenum, array, GLuint, index); \
    HookWrapper2(void, gldisableclientstateiext, GLenum, array, GLuint, index); \
    HookWrapper5(void, glnamedprogramstringext, GLuint, program, GLenum, target, GLenum, format, GLsizei, len, const void *, string); \
    HookWrapper7(void, glnamedprogramlocalparameter4dext, GLuint, program, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper4(void, glnamedprogramlocalparameter4dvext, GLuint, program, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper7(void, glnamedprogramlocalparameter4fext, GLuint, program, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, glnamedprogramlocalparameter4fvext, GLuint, program, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameterdvext, GLuint, program, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameterfvext, GLuint, program, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper4(void, glgetnamedprogramstringext, GLuint, program, GLenum, target, GLenum, pname, void *, string); \
    HookWrapper6(void, glnamedrenderbufferstoragemultisamplecoverageext, GLuint, renderbuffer, GLsizei, coverageSamples, GLsizei, colorSamples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glnamedframebuffertexturefaceext, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper3(void, gltexturerenderbufferext, GLuint, texture, GLenum, target, GLuint, renderbuffer); \
    HookWrapper3(void, glmultitexrenderbufferext, GLenum, texunit, GLenum, target, GLuint, renderbuffer); \
    HookWrapper6(void, glvertexarrayvertexoffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraycoloroffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper4(void, glvertexarrayedgeflagoffsetext, GLuint, vaobj, GLuint, buffer, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarrayindexoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarraynormaloffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraytexcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper7(void, glvertexarraymultitexcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, texunit, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarrayfogcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraysecondarycoloroffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper2(void, glenablevertexarrayext, GLuint, vaobj, GLenum, array); \
    HookWrapper2(void, gldisablevertexarrayext, GLuint, vaobj, GLenum, array); \
    HookWrapper9(void, gltexturepagecommitmentext, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, commit); \
    HookWrapper1(void, glfogcoordfext, GLfloat, coord); \
    HookWrapper1(void, glfogcoordfvext, const GLfloat *, coord); \
    HookWrapper1(void, glfogcoorddext, GLdouble, coord); \
    HookWrapper1(void, glfogcoorddvext, const GLdouble *, coord); \
    HookWrapper3(void, glfogcoordpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glprogramparameteriext, GLuint, program, GLenum, pname, GLint, value); \
    HookWrapper4(void, glprogramenvparameters4fvext, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper4(void, glprogramlocalparameters4fvext, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper5(void, glgethistogramext, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgethistogramparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgethistogramparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glgetminmaxext, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgetminmaxparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetminmaxparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glhistogramext, GLenum, target, GLsizei, width, GLenum, internalformat, GLboolean, sink); \
    HookWrapper3(void, glminmaxext, GLenum, target, GLenum, internalformat, GLboolean, sink); \
    HookWrapper1(void, glresethistogramext, GLenum, target); \
    HookWrapper1(void, glresetminmaxext, GLenum, target); \
    HookWrapper2(void, glindexfuncext, GLenum, func, GLclampf, ref); \
    HookWrapper2(void, glindexmaterialext, GLenum, face, GLenum, mode); \
    HookWrapper1(void, glapplytextureext, GLenum, mode); \
    HookWrapper1(void, gltexturelightext, GLenum, pname); \
    HookWrapper2(void, gltexturematerialext, GLenum, face, GLenum, mode); \
    HookWrapper5(void, glmultidrawelementsext, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, primcount); \
    HookWrapper2(void, glsamplemaskext, GLclampf, value, GLboolean, invert); \
    HookWrapper1(void, glsamplepatternext, GLenum, pattern); \
    HookWrapper6(void, glcolortableext, GLenum, target, GLenum, internalFormat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper4(void, glgetcolortableext, GLenum, target, GLenum, format, GLenum, type, void *, data); \
    HookWrapper3(void, glgetcolortableparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetcolortableparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glpixeltransformparameteriext, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glpixeltransformparameterfext, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glpixeltransformparameterivext, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glpixeltransformparameterfvext, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetpixeltransformparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetpixeltransformparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glpolygonoffsetext, GLfloat, factor, GLfloat, bias); \
    HookWrapper3(void, glsecondarycolor3bext, GLbyte, red, GLbyte, green, GLbyte, blue); \
    HookWrapper1(void, glsecondarycolor3bvext, const GLbyte *, v); \
    HookWrapper3(void, glsecondarycolor3dext, GLdouble, red, GLdouble, green, GLdouble, blue); \
    HookWrapper1(void, glsecondarycolor3dvext, const GLdouble *, v); \
    HookWrapper3(void, glsecondarycolor3fext, GLfloat, red, GLfloat, green, GLfloat, blue); \
    HookWrapper1(void, glsecondarycolor3fvext, const GLfloat *, v); \
    HookWrapper3(void, glsecondarycolor3iext, GLint, red, GLint, green, GLint, blue); \
    HookWrapper1(void, glsecondarycolor3ivext, const GLint *, v); \
    HookWrapper3(void, glsecondarycolor3sext, GLshort, red, GLshort, green, GLshort, blue); \
    HookWrapper1(void, glsecondarycolor3svext, const GLshort *, v); \
    HookWrapper3(void, glsecondarycolor3ubext, GLubyte, red, GLubyte, green, GLubyte, blue); \
    HookWrapper1(void, glsecondarycolor3ubvext, const GLubyte *, v); \
    HookWrapper3(void, glsecondarycolor3uiext, GLuint, red, GLuint, green, GLuint, blue); \
    HookWrapper1(void, glsecondarycolor3uivext, const GLuint *, v); \
    HookWrapper3(void, glsecondarycolor3usext, GLushort, red, GLushort, green, GLushort, blue); \
    HookWrapper1(void, glsecondarycolor3usvext, const GLushort *, v); \
    HookWrapper4(void, glsecondarycolorpointerext, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, gluseshaderprogramext, GLenum, type, GLuint, program); \
    HookWrapper1(void, glactiveprogramext, GLuint, program); \
    HookWrapper2(GLuint, glcreateshaderprogramext, GLenum, type, const GLchar *, string); \
    HookWrapper2(void, glstencilcleartagext, GLsizei, stencilTagBits, GLuint, stencilClearTag); \
    HookWrapper1(void, glactivestencilfaceext, GLenum, face); \
    HookWrapper7(void, gltexsubimage1dext, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, gltexsubimage2dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, gltexsubimage3dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper4(void, glclearcoloriiext, GLint, red, GLint, green, GLint, blue, GLint, alpha); \
    HookWrapper4(void, glclearcoloriuiext, GLuint, red, GLuint, green, GLuint, blue, GLuint, alpha); \
    HookWrapper3(GLboolean, glaretexturesresidentext, GLsizei, n, const GLuint *, textures, GLboolean *, residences); \
    HookWrapper2(void, glbindtextureext, GLenum, target, GLuint, texture); \
    HookWrapper2(void, gldeletetexturesext, GLsizei, n, const GLuint *, textures); \
    HookWrapper2(void, glgentexturesext, GLsizei, n, GLuint *, textures); \
    HookWrapper1(GLboolean, glistextureext, GLuint, texture); \
    HookWrapper3(void, glprioritizetexturesext, GLsizei, n, const GLuint *, textures, const GLclampf *, priorities); \
    HookWrapper1(void, gltexturenormalext, GLenum, mode); \
    HookWrapper4(void, glbindbufferoffsetext, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset); \
    HookWrapper1(void, glarrayelementext, GLint, i); \
    HookWrapper5(void, glcolorpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper3(void, gldrawarraysext, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper3(void, gledgeflagpointerext, GLsizei, stride, GLsizei, count, const GLboolean *, pointer); \
    HookWrapper2(void, glgetpointervext, GLenum, pname, void **, params); \
    HookWrapper4(void, glindexpointerext, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper4(void, glnormalpointerext, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper5(void, gltexcoordpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper5(void, glvertexpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper0(void, glbeginvertexshaderext); \
    HookWrapper0(void, glendvertexshaderext); \
    HookWrapper1(void, glbindvertexshaderext, GLuint, id); \
    HookWrapper1(GLuint, glgenvertexshadersext, GLuint, range); \
    HookWrapper1(void, gldeletevertexshaderext, GLuint, id); \
    HookWrapper3(void, glshaderop1ext, GLenum, op, GLuint, res, GLuint, arg1); \
    HookWrapper4(void, glshaderop2ext, GLenum, op, GLuint, res, GLuint, arg1, GLuint, arg2); \
    HookWrapper5(void, glshaderop3ext, GLenum, op, GLuint, res, GLuint, arg1, GLuint, arg2, GLuint, arg3); \
    HookWrapper6(void, glswizzleext, GLuint, res, GLuint, in, GLenum, outX, GLenum, outY, GLenum, outZ, GLenum, outW); \
    HookWrapper6(void, glwritemaskext, GLuint, res, GLuint, in, GLenum, outX, GLenum, outY, GLenum, outZ, GLenum, outW); \
    HookWrapper3(void, glinsertcomponentext, GLuint, res, GLuint, src, GLuint, num); \
    HookWrapper3(void, glextractcomponentext, GLuint, res, GLuint, src, GLuint, num); \
    HookWrapper4(GLuint, glgensymbolsext, GLenum, datatype, GLenum, storagetype, GLenum, range, GLuint, components); \
    HookWrapper3(void, glsetinvariantext, GLuint, id, GLenum, type, const void *, addr); \
    HookWrapper3(void, glsetlocalconstantext, GLuint, id, GLenum, type, const void *, addr); \
    HookWrapper2(void, glvariantbvext, GLuint, id, const GLbyte *, addr); \
    HookWrapper2(void, glvariantsvext, GLuint, id, const GLshort *, addr); \
    HookWrapper2(void, glvariantivext, GLuint, id, const GLint *, addr); \
    HookWrapper2(void, glvariantfvext, GLuint, id, const GLfloat *, addr); \
    HookWrapper2(void, glvariantdvext, GLuint, id, const GLdouble *, addr); \
    HookWrapper2(void, glvariantubvext, GLuint, id, const GLubyte *, addr); \
    HookWrapper2(void, glvariantusvext, GLuint, id, const GLushort *, addr); \
    HookWrapper2(void, glvariantuivext, GLuint, id, const GLuint *, addr); \
    HookWrapper4(void, glvariantpointerext, GLuint, id, GLenum, type, GLuint, stride, const void *, addr); \
    HookWrapper1(void, glenablevariantclientstateext, GLuint, id); \
    HookWrapper1(void, gldisablevariantclientstateext, GLuint, id); \
    HookWrapper2(GLuint, glbindlightparameterext, GLenum, light, GLenum, value); \
    HookWrapper2(GLuint, glbindmaterialparameterext, GLenum, face, GLenum, value); \
    HookWrapper3(GLuint, glbindtexgenparameterext, GLenum, unit, GLenum, coord, GLenum, value); \
    HookWrapper2(GLuint, glbindtextureunitparameterext, GLenum, unit, GLenum, value); \
    HookWrapper1(GLuint, glbindparameterext, GLenum, value); \
    HookWrapper2(GLboolean, glisvariantenabledext, GLuint, id, GLenum, cap); \
    HookWrapper3(void, glgetvariantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetvariantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetvariantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper3(void, glgetvariantpointervext, GLuint, id, GLenum, value, void **, data); \
    HookWrapper3(void, glgetinvariantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetinvariantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetinvariantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper3(void, glgetlocalconstantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetlocalconstantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetlocalconstantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper1(void, glvertexweightfext, GLfloat, weight); \
    HookWrapper1(void, glvertexweightfvext, const GLfloat *, weight); \
    HookWrapper4(void, glvertexweightpointerext, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(GLsync, glimportsyncext, GLenum, external_sync_type, GLintptr, external_sync, GLbitfield, flags); \
    HookWrapper3(void, glimagetransformparameterihp, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glimagetransformparameterfhp, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glimagetransformparameterivhp, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glimagetransformparameterfvhp, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetimagetransformparameterivhp, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetimagetransformparameterfvhp, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glmultimodedrawarraysibm, const GLenum *, mode, const GLint *, first, const GLsizei *, count, GLsizei, primcount, GLint, modestride); \
    HookWrapper6(void, glmultimodedrawelementsibm, const GLenum *, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, primcount, GLint, modestride); \
    HookWrapper1(void, glflushstaticdataibm, GLenum, target); \
    HookWrapper5(void, glcolorpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, glsecondarycolorpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper3(void, gledgeflagpointerlistibm, GLint, stride, const GLboolean **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glfogcoordpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glindexpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glnormalpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, gltexcoordpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, glvertexpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glblendfuncseparateingr, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper0(void, glapplyframebufferattachmentcmaaintel); \
    HookWrapper1(void, glsynctextureintel, GLuint, texture); \
    HookWrapper2(void, glunmaptexture2dintel, GLuint, texture, GLint, level); \
    HookWrapper5(void *, glmaptexture2dintel, GLuint, texture, GLint, level, GLbitfield, access, GLint *, stride, GLenum *, layout); \
    HookWrapper3(void, glvertexpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper2(void, glnormalpointervintel, GLenum, type, const void **, pointer); \
    HookWrapper3(void, glcolorpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper3(void, gltexcoordpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper1(void, glbeginperfqueryintel, GLuint, queryHandle); \
    HookWrapper2(void, glcreateperfqueryintel, GLuint, queryId, GLuint *, queryHandle); \
    HookWrapper1(void, gldeleteperfqueryintel, GLuint, queryHandle); \
    HookWrapper1(void, glendperfqueryintel, GLuint, queryHandle); \
    HookWrapper1(void, glgetfirstperfqueryidintel, GLuint *, queryId); \
    HookWrapper2(void, glgetnextperfqueryidintel, GLuint, queryId, GLuint *, nextQueryId); \
    HookWrapper11(void, glgetperfcounterinfointel, GLuint, queryId, GLuint, counterId, GLuint, counterNameLength, GLchar *, counterName, GLuint, counterDescLength, GLchar *, counterDesc, GLuint *, counterOffset, GLuint *, counterDataSize, GLuint *, counterTypeEnum, GLuint *, counterDataTypeEnum, GLuint64 *, rawCounterMaxValue); \
    HookWrapper5(void, glgetperfquerydataintel, GLuint, queryHandle, GLuint, flags, GLsizei, dataSize, GLvoid *, data, GLuint *, bytesWritten); \
    HookWrapper2(void, glgetperfqueryidbynameintel, GLchar *, queryName, GLuint *, queryId); \
    HookWrapper7(void, glgetperfqueryinfointel, GLuint, queryId, GLuint, queryNameLength, GLchar *, queryName, GLuint *, dataSize, GLuint *, noCounters, GLuint *, noInstances, GLuint *, capsMask); \
    HookWrapper0(void, glresizebuffersmesa); \
    HookWrapper2(void, glwindowpos2dmesa, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dvmesa, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2fmesa, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fvmesa, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2imesa, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2ivmesa, const GLint *, v); \
    HookWrapper2(void, glwindowpos2smesa, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2svmesa, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3dmesa, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dvmesa, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3fmesa, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fvmesa, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3imesa, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3ivmesa, const GLint *, v); \
    HookWrapper3(void, glwindowpos3smesa, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3svmesa, const GLshort *, v); \
    HookWrapper4(void, glwindowpos4dmesa, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper1(void, glwindowpos4dvmesa, const GLdouble *, v); \
    HookWrapper4(void, glwindowpos4fmesa, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper1(void, glwindowpos4fvmesa, const GLfloat *, v); \
    HookWrapper4(void, glwindowpos4imesa, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper1(void, glwindowpos4ivmesa, const GLint *, v); \
    HookWrapper4(void, glwindowpos4smesa, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper1(void, glwindowpos4svmesa, const GLshort *, v); \
    HookWrapper1(void, glbeginconditionalrendernvx, GLuint, id); \
    HookWrapper0(void, glendconditionalrendernvx); \
    HookWrapper5(void, glmultidrawarraysindirectbindlessnv, GLenum, mode, const void *, indirect, GLsizei, drawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper6(void, glmultidrawelementsindirectbindlessnv, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper6(void, glmultidrawarraysindirectbindlesscountnv, GLenum, mode, const void *, indirect, GLsizei, drawCount, GLsizei, maxDrawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper7(void, glmultidrawelementsindirectbindlesscountnv, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawCount, GLsizei, maxDrawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper1(GLuint64, glgettexturehandlenv, GLuint, texture); \
    HookWrapper2(GLuint64, glgettexturesamplerhandlenv, GLuint, texture, GLuint, sampler); \
    HookWrapper1(void, glmaketexturehandleresidentnv, GLuint64, handle); \
    HookWrapper1(void, glmaketexturehandlenonresidentnv, GLuint64, handle); \
    HookWrapper5(GLuint64, glgetimagehandlenv, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, format); \
    HookWrapper2(void, glmakeimagehandleresidentnv, GLuint64, handle, GLenum, access); \
    HookWrapper1(void, glmakeimagehandlenonresidentnv, GLuint64, handle); \
    HookWrapper2(void, gluniformhandleui64nv, GLint, location, GLuint64, value); \
    HookWrapper3(void, gluniformhandleui64vnv, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glprogramuniformhandleui64nv, GLuint, program, GLint, location, GLuint64, value); \
    HookWrapper4(void, glprogramuniformhandleui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, values); \
    HookWrapper1(GLboolean, glistexturehandleresidentnv, GLuint64, handle); \
    HookWrapper1(GLboolean, glisimagehandleresidentnv, GLuint64, handle); \
    HookWrapper2(void, glblendparameterinv, GLenum, pname, GLint, value); \
    HookWrapper0(void, glblendbarriernv); \
    HookWrapper2(void, glcreatestatesnv, GLsizei, n, GLuint *, states); \
    HookWrapper2(void, gldeletestatesnv, GLsizei, n, const GLuint *, states); \
    HookWrapper1(GLboolean, glisstatenv, GLuint, state); \
    HookWrapper2(void, glstatecapturenv, GLuint, state, GLenum, mode); \
    HookWrapper2(GLuint, glgetcommandheadernv, GLenum, tokenID, GLuint, size); \
    HookWrapper1(GLushort, glgetstageindexnv, GLenum, shadertype); \
    HookWrapper5(void, gldrawcommandsnv, GLenum, primitiveMode, GLuint, buffer, const GLintptr *, indirects, const GLsizei *, sizes, GLuint, count); \
    HookWrapper4(void, gldrawcommandsaddressnv, GLenum, primitiveMode, const GLuint64 *, indirects, const GLsizei *, sizes, GLuint, count); \
    HookWrapper6(void, gldrawcommandsstatesnv, GLuint, buffer, const GLintptr *, indirects, const GLsizei *, sizes, const GLuint *, states, const GLuint *, fbos, GLuint, count); \
    HookWrapper5(void, gldrawcommandsstatesaddressnv, const GLuint64 *, indirects, const GLsizei *, sizes, const GLuint *, states, const GLuint *, fbos, GLuint, count); \
    HookWrapper2(void, glcreatecommandlistsnv, GLsizei, n, GLuint *, lists); \
    HookWrapper2(void, gldeletecommandlistsnv, GLsizei, n, const GLuint *, lists); \
    HookWrapper1(GLboolean, gliscommandlistnv, GLuint, list); \
    HookWrapper7(void, gllistdrawcommandsstatesclientnv, GLuint, list, GLuint, segment, const void **, indirects, const GLsizei *, sizes, const GLuint *, states, const GLuint *, fbos, GLuint, count); \
    HookWrapper2(void, glcommandlistsegmentsnv, GLuint, list, GLuint, segments); \
    HookWrapper1(void, glcompilecommandlistnv, GLuint, list); \
    HookWrapper1(void, glcallcommandlistnv, GLuint, list); \
    HookWrapper2(void, glbeginconditionalrendernv, GLuint, id, GLenum, mode); \
    HookWrapper0(void, glendconditionalrendernv); \
    HookWrapper2(void, glsubpixelprecisionbiasnv, GLuint, xbits, GLuint, ybits); \
    HookWrapper2(void, glconservativerasterparameterfnv, GLenum, pname, GLfloat, value); \
    HookWrapper15(void, glcopyimagesubdatanv, GLuint, srcName, GLenum, srcTarget, GLint, srcLevel, GLint, srcX, GLint, srcY, GLint, srcZ, GLuint, dstName, GLenum, dstTarget, GLint, dstLevel, GLint, dstX, GLint, dstY, GLint, dstZ, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper2(void, gldepthrangednv, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper1(void, glcleardepthdnv, GLdouble, depth); \
    HookWrapper2(void, gldepthboundsdnv, GLdouble, zmin, GLdouble, zmax); \
    HookWrapper11(void, gldrawtexturenv, GLuint, texture, GLuint, sampler, GLfloat, x0, GLfloat, y0, GLfloat, x1, GLfloat, y1, GLfloat, z, GLfloat, s0, GLfloat, t0, GLfloat, s1, GLfloat, t1); \
    HookWrapper9(void, glmapcontrolpointsnv, GLenum, target, GLuint, index, GLenum, type, GLsizei, ustride, GLsizei, vstride, GLint, uorder, GLint, vorder, GLboolean, packed, const void *, points); \
    HookWrapper3(void, glmapparameterivnv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glmapparameterfvnv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper7(void, glgetmapcontrolpointsnv, GLenum, target, GLuint, index, GLenum, type, GLsizei, ustride, GLsizei, vstride, GLboolean, packed, void *, points); \
    HookWrapper3(void, glgetmapparameterivnv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetmapparameterfvnv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmapattribparameterivnv, GLenum, target, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetmapattribparameterfvnv, GLenum, target, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glevalmapsnv, GLenum, target, GLenum, mode); \
    HookWrapper3(void, glgetmultisamplefvnv, GLenum, pname, GLuint, index, GLfloat *, val); \
    HookWrapper2(void, glsamplemaskindexednv, GLuint, index, GLbitfield, mask); \
    HookWrapper2(void, gltexrenderbuffernv, GLenum, target, GLuint, renderbuffer); \
    HookWrapper2(void, gldeletefencesnv, GLsizei, n, const GLuint *, fences); \
    HookWrapper2(void, glgenfencesnv, GLsizei, n, GLuint *, fences); \
    HookWrapper1(GLboolean, glisfencenv, GLuint, fence); \
    HookWrapper1(GLboolean, gltestfencenv, GLuint, fence); \
    HookWrapper3(void, glgetfenceivnv, GLuint, fence, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glfinishfencenv, GLuint, fence); \
    HookWrapper2(void, glsetfencenv, GLuint, fence, GLenum, condition); \
    HookWrapper1(void, glfragmentcoveragecolornv, GLuint, color); \
    HookWrapper7(void, glprogramnamedparameter4fnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, glprogramnamedparameter4fvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLfloat *, v); \
    HookWrapper7(void, glprogramnamedparameter4dnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper4(void, glprogramnamedparameter4dvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLdouble *, v); \
    HookWrapper4(void, glgetprogramnamedparameterfvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat *, params); \
    HookWrapper4(void, glgetprogramnamedparameterdvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble *, params); \
    HookWrapper2(void, glcoveragemodulationtablenv, GLsizei, n, const GLfloat *, v); \
    HookWrapper2(void, glgetcoveragemodulationtablenv, GLsizei, bufsize, GLfloat *, v); \
    HookWrapper1(void, glcoveragemodulationnv, GLenum, components); \
    HookWrapper6(void, glrenderbufferstoragemultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glprogramvertexlimitnv, GLenum, target, GLint, limit); \
    HookWrapper5(void, glframebuffertexturefaceext, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper6(void, glprogramlocalparameteri4inv, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper3(void, glprogramlocalparameteri4ivnv, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper4(void, glprogramlocalparametersi4ivnv, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper6(void, glprogramlocalparameteri4uinv, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper3(void, glprogramlocalparameteri4uivnv, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper4(void, glprogramlocalparametersi4uivnv, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper6(void, glprogramenvparameteri4inv, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper3(void, glprogramenvparameteri4ivnv, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper4(void, glprogramenvparametersi4ivnv, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper6(void, glprogramenvparameteri4uinv, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper3(void, glprogramenvparameteri4uivnv, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper4(void, glprogramenvparametersi4uivnv, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper3(void, glgetprogramlocalparameteriivnv, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper3(void, glgetprogramlocalparameteriuivnv, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper3(void, glgetprogramenvparameteriivnv, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper3(void, glgetprogramenvparameteriuivnv, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper3(void, glprogramsubroutineparametersuivnv, GLenum, target, GLsizei, count, const GLuint *, params); \
    HookWrapper3(void, glgetprogramsubroutineparameteruivnv, GLenum, target, GLuint, index, GLuint *, param); \
    HookWrapper2(void, glvertex2hnv, GLhalfNV, x, GLhalfNV, y); \
    HookWrapper1(void, glvertex2hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glvertex3hnv, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z); \
    HookWrapper1(void, glvertex3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, glvertex4hnv, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z, GLhalfNV, w); \
    HookWrapper1(void, glvertex4hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glnormal3hnv, GLhalfNV, nx, GLhalfNV, ny, GLhalfNV, nz); \
    HookWrapper1(void, glnormal3hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glcolor3hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue); \
    HookWrapper1(void, glcolor3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, glcolor4hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue, GLhalfNV, alpha); \
    HookWrapper1(void, glcolor4hvnv, const GLhalfNV *, v); \
    HookWrapper1(void, gltexcoord1hnv, GLhalfNV, s); \
    HookWrapper1(void, gltexcoord1hvnv, const GLhalfNV *, v); \
    HookWrapper2(void, gltexcoord2hnv, GLhalfNV, s, GLhalfNV, t); \
    HookWrapper1(void, gltexcoord2hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, gltexcoord3hnv, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r); \
    HookWrapper1(void, gltexcoord3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, gltexcoord4hnv, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r, GLhalfNV, q); \
    HookWrapper1(void, gltexcoord4hvnv, const GLhalfNV *, v); \
    HookWrapper2(void, glmultitexcoord1hnv, GLenum, target, GLhalfNV, s); \
    HookWrapper2(void, glmultitexcoord1hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper3(void, glmultitexcoord2hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t); \
    HookWrapper2(void, glmultitexcoord2hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper4(void, glmultitexcoord3hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r); \
    HookWrapper2(void, glmultitexcoord3hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper5(void, glmultitexcoord4hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r, GLhalfNV, q); \
    HookWrapper2(void, glmultitexcoord4hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper1(void, glfogcoordhnv, GLhalfNV, fog); \
    HookWrapper1(void, glfogcoordhvnv, const GLhalfNV *, fog); \
    HookWrapper3(void, glsecondarycolor3hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue); \
    HookWrapper1(void, glsecondarycolor3hvnv, const GLhalfNV *, v); \
    HookWrapper1(void, glvertexweighthnv, GLhalfNV, weight); \
    HookWrapper1(void, glvertexweighthvnv, const GLhalfNV *, weight); \
    HookWrapper2(void, glvertexattrib1hnv, GLuint, index, GLhalfNV, x); \
    HookWrapper2(void, glvertexattrib1hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattrib2hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y); \
    HookWrapper2(void, glvertexattrib2hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper4(void, glvertexattrib3hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z); \
    HookWrapper2(void, glvertexattrib3hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper5(void, glvertexattrib4hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z, GLhalfNV, w); \
    HookWrapper2(void, glvertexattrib4hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs1hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs2hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs3hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs4hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper6(void, glgetinternalformatsampleivnv, GLenum, target, GLenum, internalformat, GLsizei, samples, GLenum, pname, GLsizei, bufSize, GLint *, params); \
    HookWrapper2(void, glgenocclusionqueriesnv, GLsizei, n, GLuint *, ids); \
    HookWrapper2(void, gldeleteocclusionqueriesnv, GLsizei, n, const GLuint *, ids); \
    HookWrapper1(GLboolean, glisocclusionquerynv, GLuint, id); \
    HookWrapper1(void, glbeginocclusionquerynv, GLuint, id); \
    HookWrapper0(void, glendocclusionquerynv); \
    HookWrapper3(void, glgetocclusionqueryivnv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetocclusionqueryuivnv, GLuint, id, GLenum, pname, GLuint *, params); \
    HookWrapper5(void, glprogrambufferparametersfvnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLfloat *, params); \
    HookWrapper5(void, glprogrambufferparametersiivnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLint *, params); \
    HookWrapper5(void, glprogrambufferparametersiuivnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLuint *, params); \
    HookWrapper1(GLuint, glgenpathsnv, GLsizei, range); \
    HookWrapper2(void, gldeletepathsnv, GLuint, path, GLsizei, range); \
    HookWrapper1(GLboolean, glispathnv, GLuint, path); \
    HookWrapper6(void, glpathcommandsnv, GLuint, path, GLsizei, numCommands, const GLubyte *, commands, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper4(void, glpathcoordsnv, GLuint, path, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper8(void, glpathsubcommandsnv, GLuint, path, GLsizei, commandStart, GLsizei, commandsToDelete, GLsizei, numCommands, const GLubyte *, commands, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper5(void, glpathsubcoordsnv, GLuint, path, GLsizei, coordStart, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper4(void, glpathstringnv, GLuint, path, GLenum, format, GLsizei, length, const void *, pathString); \
    HookWrapper10(void, glpathglyphsnv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLsizei, numGlyphs, GLenum, type, const void *, charcodes, GLenum, handleMissingGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper9(void, glpathglyphrangenv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, firstGlyph, GLsizei, numGlyphs, GLenum, handleMissingGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper4(void, glweightpathsnv, GLuint, resultPath, GLsizei, numPaths, const GLuint *, paths, const GLfloat *, weights); \
    HookWrapper2(void, glcopypathnv, GLuint, resultPath, GLuint, srcPath); \
    HookWrapper4(void, glinterpolatepathsnv, GLuint, resultPath, GLuint, pathA, GLuint, pathB, GLfloat, weight); \
    HookWrapper4(void, gltransformpathnv, GLuint, resultPath, GLuint, srcPath, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper3(void, glpathparameterivnv, GLuint, path, GLenum, pname, const GLint *, value); \
    HookWrapper3(void, glpathparameterinv, GLuint, path, GLenum, pname, GLint, value); \
    HookWrapper3(void, glpathparameterfvnv, GLuint, path, GLenum, pname, const GLfloat *, value); \
    HookWrapper3(void, glpathparameterfnv, GLuint, path, GLenum, pname, GLfloat, value); \
    HookWrapper3(void, glpathdasharraynv, GLuint, path, GLsizei, dashCount, const GLfloat *, dashArray); \
    HookWrapper3(void, glpathstencilfuncnv, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper2(void, glpathstencildepthoffsetnv, GLfloat, factor, GLfloat, units); \
    HookWrapper3(void, glstencilfillpathnv, GLuint, path, GLenum, fillMode, GLuint, mask); \
    HookWrapper3(void, glstencilstrokepathnv, GLuint, path, GLint, reference, GLuint, mask); \
    HookWrapper8(void, glstencilfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, fillMode, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper8(void, glstencilstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLint, reference, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper1(void, glpathcoverdepthfuncnv, GLenum, func); \
    HookWrapper2(void, glcoverfillpathnv, GLuint, path, GLenum, coverMode); \
    HookWrapper2(void, glcoverstrokepathnv, GLuint, path, GLenum, coverMode); \
    HookWrapper7(void, glcoverfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper7(void, glcoverstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper3(void, glgetpathparameterivnv, GLuint, path, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathparameterfvnv, GLuint, path, GLenum, pname, GLfloat *, value); \
    HookWrapper2(void, glgetpathcommandsnv, GLuint, path, GLubyte *, commands); \
    HookWrapper2(void, glgetpathcoordsnv, GLuint, path, GLfloat *, coords); \
    HookWrapper2(void, glgetpathdasharraynv, GLuint, path, GLfloat *, dashArray); \
    HookWrapper7(void, glgetpathmetricsnv, GLbitfield, metricQueryMask, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLsizei, stride, GLfloat *, metrics); \
    HookWrapper5(void, glgetpathmetricrangenv, GLbitfield, metricQueryMask, GLuint, firstPathName, GLsizei, numPaths, GLsizei, stride, GLfloat *, metrics); \
    HookWrapper9(void, glgetpathspacingnv, GLenum, pathListMode, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLfloat, advanceScale, GLfloat, kerningScale, GLenum, transformType, GLfloat *, returnedSpacing); \
    HookWrapper4(GLboolean, glispointinfillpathnv, GLuint, path, GLuint, mask, GLfloat, x, GLfloat, y); \
    HookWrapper3(GLboolean, glispointinstrokepathnv, GLuint, path, GLfloat, x, GLfloat, y); \
    HookWrapper3(GLfloat, glgetpathlengthnv, GLuint, path, GLsizei, startSegment, GLsizei, numSegments); \
    HookWrapper8(GLboolean, glpointalongpathnv, GLuint, path, GLsizei, startSegment, GLsizei, numSegments, GLfloat, distance, GLfloat *, x, GLfloat *, y, GLfloat *, tangentX, GLfloat *, tangentY); \
    HookWrapper2(void, glmatrixload3x2fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixload3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloadtranspose3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmult3x2fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmult3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmulttranspose3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper4(void, glstencilthencoverfillpathnv, GLuint, path, GLenum, fillMode, GLuint, mask, GLenum, coverMode); \
    HookWrapper4(void, glstencilthencoverstrokepathnv, GLuint, path, GLint, reference, GLuint, mask, GLenum, coverMode); \
    HookWrapper9(void, glstencilthencoverfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, fillMode, GLuint, mask, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper9(void, glstencilthencoverstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLint, reference, GLuint, mask, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper6(GLenum, glpathglyphindexrangenv, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, pathParameterTemplate, GLfloat, emScale, GLuint *, baseAndCount); \
    HookWrapper8(GLenum, glpathglyphindexarraynv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, firstGlyphIndex, GLsizei, numGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper9(GLenum, glpathmemoryglyphindexarraynv, GLuint, firstPathName, GLenum, fontTarget, GLsizeiptr, fontSize, const void *, fontData, GLsizei, faceIndex, GLuint, firstGlyphIndex, GLsizei, numGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper5(void, glprogrampathfragmentinputgennv, GLuint, program, GLint, location, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
    HookWrapper8(void, glgetprogramresourcefvnv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLfloat *, params); \
    HookWrapper4(void, glpathcolorgennv, GLenum, color, GLenum, genMode, GLenum, colorFormat, const GLfloat *, coeffs); \
    HookWrapper4(void, glpathtexgennv, GLenum, texCoordSet, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
    HookWrapper1(void, glpathfoggennv, GLenum, genMode); \
    HookWrapper3(void, glgetpathcolorgenivnv, GLenum, color, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathcolorgenfvnv, GLenum, color, GLenum, pname, GLfloat *, value); \
    HookWrapper3(void, glgetpathtexgenivnv, GLenum, texCoordSet, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathtexgenfvnv, GLenum, texCoordSet, GLenum, pname, GLfloat *, value); \
    HookWrapper3(void, glpixeldatarangenv, GLenum, target, GLsizei, length, const void *, pointer); \
    HookWrapper1(void, glflushpixeldatarangenv, GLenum, target); \
    HookWrapper2(void, glpointparameterinv, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpointparameterivnv, GLenum, pname, const GLint *, params); \
    HookWrapper11(void, glpresentframekeyednv, GLuint, video_slot, GLuint64EXT, minPresentTime, GLuint, beginPresentTimeId, GLuint, presentDurationId, GLenum, type, GLenum, target0, GLuint, fill0, GLuint, key0, GLenum, target1, GLuint, fill1, GLuint, key1); \
    HookWrapper13(void, glpresentframedualfillnv, GLuint, video_slot, GLuint64EXT, minPresentTime, GLuint, beginPresentTimeId, GLuint, presentDurationId, GLenum, type, GLenum, target0, GLuint, fill0, GLenum, target1, GLuint, fill1, GLenum, target2, GLuint, fill2, GLenum, target3, GLuint, fill3); \
    HookWrapper3(void, glgetvideoivnv, GLuint, video_slot, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvideouivnv, GLuint, video_slot, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glgetvideoi64vnv, GLuint, video_slot, GLenum, pname, GLint64EXT *, params); \
    HookWrapper3(void, glgetvideoui64vnv, GLuint, video_slot, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper0(void, glprimitiverestartnv); \
    HookWrapper1(void, glprimitiverestartindexnv, GLuint, index); \
    HookWrapper2(void, glcombinerparameterfvnv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glcombinerparameterfnv, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glcombinerparameterivnv, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glcombinerparameterinv, GLenum, pname, GLint, param); \
    HookWrapper6(void, glcombinerinputnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, input, GLenum, mapping, GLenum, componentUsage); \
    HookWrapper10(void, glcombineroutputnv, GLenum, stage, GLenum, portion, GLenum, abOutput, GLenum, cdOutput, GLenum, sumOutput, GLenum, scale, GLenum, bias, GLboolean, abDotProduct, GLboolean, cdDotProduct, GLboolean, muxSum); \
    HookWrapper4(void, glfinalcombinerinputnv, GLenum, variable, GLenum, input, GLenum, mapping, GLenum, componentUsage); \
    HookWrapper5(void, glgetcombinerinputparameterfvnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glgetcombinerinputparameterivnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetcombineroutputparameterfvnv, GLenum, stage, GLenum, portion, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetcombineroutputparameterivnv, GLenum, stage, GLenum, portion, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetfinalcombinerinputparameterfvnv, GLenum, variable, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfinalcombinerinputparameterivnv, GLenum, variable, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glframebuffersamplelocationsfvnv, GLenum, target, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper4(void, glnamedframebuffersamplelocationsfvnv, GLuint, framebuffer, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper0(void, glresolvedepthvaluesnv); \
    HookWrapper2(void, glmakebufferresidentnv, GLenum, target, GLenum, access); \
    HookWrapper1(void, glmakebuffernonresidentnv, GLenum, target); \
    HookWrapper1(GLboolean, glisbufferresidentnv, GLenum, target); \
    HookWrapper2(void, glmakenamedbufferresidentnv, GLuint, buffer, GLenum, access); \
    HookWrapper1(void, glmakenamedbuffernonresidentnv, GLuint, buffer); \
    HookWrapper1(GLboolean, glisnamedbufferresidentnv, GLuint, buffer); \
    HookWrapper3(void, glgetbufferparameterui64vnv, GLenum, target, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper3(void, glgetnamedbufferparameterui64vnv, GLuint, buffer, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper2(void, glgetintegerui64vnv, GLenum, value, GLuint64EXT *, result); \
    HookWrapper2(void, gluniformui64nv, GLint, location, GLuint64EXT, value); \
    HookWrapper3(void, gluniformui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glprogramuniformui64nv, GLuint, program, GLint, location, GLuint64EXT, value); \
    HookWrapper4(void, glprogramuniformui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper0(void, gltexturebarriernv); \
    HookWrapper7(void, glteximage2dmultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, glteximage3dmultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper7(void, gltextureimage2dmultisamplenv, GLuint, texture, GLenum, target, GLsizei, samples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, gltextureimage3dmultisamplenv, GLuint, texture, GLenum, target, GLsizei, samples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, gltextureimage2dmultisamplecoveragenv, GLuint, texture, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper9(void, gltextureimage3dmultisamplecoveragenv, GLuint, texture, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper1(void, glbegintransformfeedbacknv, GLenum, primitiveMode); \
    HookWrapper0(void, glendtransformfeedbacknv); \
    HookWrapper3(void, gltransformfeedbackattribsnv, GLsizei, count, const GLint *, attribs, GLenum, bufferMode); \
    HookWrapper5(void, glbindbufferrangenv, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper4(void, glbindbufferoffsetnv, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset); \
    HookWrapper3(void, glbindbufferbasenv, GLenum, target, GLuint, index, GLuint, buffer); \
    HookWrapper4(void, gltransformfeedbackvaryingsnv, GLuint, program, GLsizei, count, const GLint *, locations, GLenum, bufferMode); \
    HookWrapper2(void, glactivevaryingnv, GLuint, program, const GLchar *, name); \
    HookWrapper2(GLint, glgetvaryinglocationnv, GLuint, program, const GLchar *, name); \
    HookWrapper7(void, glgetactivevaryingnv, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \
    HookWrapper3(void, glgettransformfeedbackvaryingnv, GLuint, program, GLuint, index, GLint *, location); \
    HookWrapper5(void, gltransformfeedbackstreamattribsnv, GLsizei, count, const GLint *, attribs, GLsizei, nbuffers, const GLint *, bufstreams, GLenum, bufferMode); \
    HookWrapper2(void, glbindtransformfeedbacknv, GLenum, target, GLuint, id); \
    HookWrapper2(void, gldeletetransformfeedbacksnv, GLsizei, n, const GLuint *, ids); \
    HookWrapper2(void, glgentransformfeedbacksnv, GLsizei, n, GLuint *, ids); \
    HookWrapper1(GLboolean, glistransformfeedbacknv, GLuint, id); \
    HookWrapper0(void, glpausetransformfeedbacknv); \
    HookWrapper0(void, glresumetransformfeedbacknv); \
    HookWrapper2(void, gldrawtransformfeedbacknv, GLenum, mode, GLuint, id); \
    HookWrapper2(void, glvdpauinitnv, const void *, vdpDevice, const void *, getProcAddress); \
    HookWrapper0(void, glvdpaufininv); \
    HookWrapper4(GLvdpauSurfaceNV, glvdpauregistervideosurfacenv, const void *, vdpSurface, GLenum, target, GLsizei, numTextureNames, const GLuint *, textureNames); \
    HookWrapper4(GLvdpauSurfaceNV, glvdpauregisteroutputsurfacenv, const void *, vdpSurface, GLenum, target, GLsizei, numTextureNames, const GLuint *, textureNames); \
    HookWrapper1(GLboolean, glvdpauissurfacenv, GLvdpauSurfaceNV, surface); \
    HookWrapper1(void, glvdpauunregistersurfacenv, GLvdpauSurfaceNV, surface); \
    HookWrapper5(void, glvdpaugetsurfaceivnv, GLvdpauSurfaceNV, surface, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \
    HookWrapper2(void, glvdpausurfaceaccessnv, GLvdpauSurfaceNV, surface, GLenum, access); \
    HookWrapper2(void, glvdpaumapsurfacesnv, GLsizei, numSurfaces, const GLvdpauSurfaceNV *, surfaces); \
    HookWrapper2(void, glvdpauunmapsurfacesnv, GLsizei, numSurface, const GLvdpauSurfaceNV *, surfaces); \
    HookWrapper0(void, glflushvertexarrayrangenv); \
    HookWrapper2(void, glvertexarrayrangenv, GLsizei, length, const void *, pointer); \
    HookWrapper2(void, glvertexattribl1i64nv, GLuint, index, GLint64EXT, x); \
    HookWrapper3(void, glvertexattribl2i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper4(void, glvertexattribl3i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper5(void, glvertexattribl4i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper2(void, glvertexattribl1i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl2i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl3i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl4i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl1ui64nv, GLuint, index, GLuint64EXT, x); \
    HookWrapper3(void, glvertexattribl2ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper4(void, glvertexattribl3ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper5(void, glvertexattribl4ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper2(void, glvertexattribl1ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl2ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl3ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl4ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper3(void, glgetvertexattribli64vnv, GLuint, index, GLenum, pname, GLint64EXT *, params); \
    HookWrapper3(void, glgetvertexattriblui64vnv, GLuint, index, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper4(void, glvertexattriblformatnv, GLuint, index, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper4(void, glbufferaddressrangenv, GLenum, pname, GLuint, index, GLuint64EXT, address, GLsizeiptr, length); \
    HookWrapper3(void, glvertexformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glnormalformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, glcolorformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glindexformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, gltexcoordformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper1(void, gledgeflagformatnv, GLsizei, stride); \
    HookWrapper3(void, glsecondarycolorformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glfogcoordformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper5(void, glvertexattribformatnv, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride); \
    HookWrapper4(void, glvertexattribiformatnv, GLuint, index, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, glgetintegerui64i_vnv, GLenum, value, GLuint, index, GLuint64EXT *, result); \
    HookWrapper3(GLboolean, glareprogramsresidentnv, GLsizei, n, const GLuint *, programs, GLboolean *, residences); \
    HookWrapper2(void, glbindprogramnv, GLenum, target, GLuint, id); \
    HookWrapper2(void, gldeleteprogramsnv, GLsizei, n, const GLuint *, programs); \
    HookWrapper3(void, glexecuteprogramnv, GLenum, target, GLuint, id, const GLfloat *, params); \
    HookWrapper2(void, glgenprogramsnv, GLsizei, n, GLuint *, programs); \
    HookWrapper4(void, glgetprogramparameterdvnv, GLenum, target, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper4(void, glgetprogramparameterfvnv, GLenum, target, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetprogramivnv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetprogramstringnv, GLuint, id, GLenum, pname, GLubyte *, program); \
    HookWrapper4(void, glgettrackmatrixivnv, GLenum, target, GLuint, address, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribdvnv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glgetvertexattribfvnv, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribivnv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribpointervnv, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper1(GLboolean, glisprogramnv, GLuint, id); \
    HookWrapper4(void, glloadprogramnv, GLenum, target, GLuint, id, GLsizei, len, const GLubyte *, program); \
    HookWrapper6(void, glprogramparameter4dnv, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramparameter4dvnv, GLenum, target, GLuint, index, const GLdouble *, v); \
    HookWrapper6(void, glprogramparameter4fnv, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramparameter4fvnv, GLenum, target, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glprogramparameters4dvnv, GLenum, target, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper4(void, glprogramparameters4fvnv, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper2(void, glrequestresidentprogramsnv, GLsizei, n, const GLuint *, programs); \
    HookWrapper4(void, gltrackmatrixnv, GLenum, target, GLuint, address, GLenum, matrix, GLenum, transform); \
    HookWrapper5(void, glvertexattribpointernv, GLuint, index, GLint, fsize, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, glvertexattrib1dnv, GLuint, index, GLdouble, x); \
    HookWrapper2(void, glvertexattrib1dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glvertexattrib1fnv, GLuint, index, GLfloat, x); \
    HookWrapper2(void, glvertexattrib1fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glvertexattrib1snv, GLuint, index, GLshort, x); \
    HookWrapper2(void, glvertexattrib1svnv, GLuint, index, const GLshort *, v); \
    HookWrapper3(void, glvertexattrib2dnv, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glvertexattrib2dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper3(void, glvertexattrib2fnv, GLuint, index, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glvertexattrib2fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glvertexattrib2snv, GLuint, index, GLshort, x, GLshort, y); \
    HookWrapper2(void, glvertexattrib2svnv, GLuint, index, const GLshort *, v); \
    HookWrapper4(void, glvertexattrib3dnv, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glvertexattrib3dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper4(void, glvertexattrib3fnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glvertexattrib3fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glvertexattrib3snv, GLuint, index, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glvertexattrib3svnv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glvertexattrib4dnv, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glvertexattrib4dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glvertexattrib4fnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glvertexattrib4fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper5(void, glvertexattrib4snv, GLuint, index, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glvertexattrib4svnv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glvertexattrib4ubnv, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper2(void, glvertexattrib4ubvnv, GLuint, index, const GLubyte *, v); \
    HookWrapper3(void, glvertexattribs1dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs1fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs1svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs2dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs2fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs2svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs3dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs3fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs3svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs4dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs4fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs4svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs4ubvnv, GLuint, index, GLsizei, count, const GLubyte *, v); \
    HookWrapper1(void, glbeginvideocapturenv, GLuint, video_capture_slot); \
    HookWrapper4(void, glbindvideocapturestreambuffernv, GLuint, video_capture_slot, GLuint, stream, GLenum, frame_region, GLintptrARB, offset); \
    HookWrapper5(void, glbindvideocapturestreamtexturenv, GLuint, video_capture_slot, GLuint, stream, GLenum, frame_region, GLenum, target, GLuint, texture); \
    HookWrapper1(void, glendvideocapturenv, GLuint, video_capture_slot); \
    HookWrapper3(void, glgetvideocaptureivnv, GLuint, video_capture_slot, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetvideocapturestreamivnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetvideocapturestreamfvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetvideocapturestreamdvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLdouble *, params); \
    HookWrapper3(GLenum, glvideocapturenv, GLuint, video_capture_slot, GLuint *, sequence_num, GLuint64EXT *, capture_time); \
    HookWrapper4(void, glvideocapturestreamparameterivnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glvideocapturestreamparameterfvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glvideocapturestreamparameterdvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLdouble *, params); \
    HookWrapper2(void, glhintpgi, GLenum, target, GLint, mode); \
    HookWrapper3(void, gldetailtexfuncsgis, GLenum, target, GLsizei, n, const GLfloat *, points); \
    HookWrapper2(void, glgetdetailtexfuncsgis, GLenum, target, GLfloat *, points); \
    HookWrapper2(void, glfogfuncsgis, GLsizei, n, const GLfloat *, points); \
    HookWrapper1(void, glgetfogfuncsgis, GLfloat *, points); \
    HookWrapper2(void, glsamplemasksgis, GLclampf, value, GLboolean, invert); \
    HookWrapper1(void, glsamplepatternsgis, GLenum, pattern); \
    HookWrapper2(void, glpixeltexgenparameterisgis, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpixeltexgenparameterivsgis, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glpixeltexgenparameterfsgis, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpixeltexgenparameterfvsgis, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glgetpixeltexgenparameterivsgis, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glgetpixeltexgenparameterfvsgis, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glpointparameterfsgis, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpointparameterfvsgis, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glsharpentexfuncsgis, GLenum, target, GLsizei, n, const GLfloat *, points); \
    HookWrapper2(void, glgetsharpentexfuncsgis, GLenum, target, GLfloat *, points); \
    HookWrapper11(void, glteximage4dsgis, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, size4d, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper13(void, gltexsubimage4dsgis, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, woffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, size4d, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper4(void, gltexturecolormasksgis, GLboolean, red, GLboolean, green, GLboolean, blue, GLboolean, alpha); \
    HookWrapper3(void, glgettexfilterfuncsgis, GLenum, target, GLenum, filter, GLfloat *, weights); \
    HookWrapper4(void, gltexfilterfuncsgis, GLenum, target, GLenum, filter, GLsizei, n, const GLfloat *, weights); \
    HookWrapper1(void, glasyncmarkersgix, GLuint, marker); \
    HookWrapper1(GLint, glfinishasyncsgix, GLuint *, markerp); \
    HookWrapper1(GLint, glpollasyncsgix, GLuint *, markerp); \
    HookWrapper1(GLuint, glgenasyncmarkerssgix, GLsizei, range); \
    HookWrapper2(void, gldeleteasyncmarkerssgix, GLuint, marker, GLsizei, range); \
    HookWrapper1(GLboolean, glisasyncmarkersgix, GLuint, marker); \
    HookWrapper0(void, glflushrastersgix); \
    HookWrapper2(void, glfragmentcolormaterialsgix, GLenum, face, GLenum, mode); \
    HookWrapper3(void, glfragmentlightfsgix, GLenum, light, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glfragmentlightfvsgix, GLenum, light, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glfragmentlightisgix, GLenum, light, GLenum, pname, GLint, param); \
    HookWrapper3(void, glfragmentlightivsgix, GLenum, light, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glfragmentlightmodelfsgix, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glfragmentlightmodelfvsgix, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glfragmentlightmodelisgix, GLenum, pname, GLint, param); \
    HookWrapper2(void, glfragmentlightmodelivsgix, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glfragmentmaterialfsgix, GLenum, face, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glfragmentmaterialfvsgix, GLenum, face, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glfragmentmaterialisgix, GLenum, face, GLenum, pname, GLint, param); \
    HookWrapper3(void, glfragmentmaterialivsgix, GLenum, face, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glgetfragmentlightfvsgix, GLenum, light, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfragmentlightivsgix, GLenum, light, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetfragmentmaterialfvsgix, GLenum, face, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfragmentmaterialivsgix, GLenum, face, GLenum, pname, GLint *, params); \
    HookWrapper2(void, gllightenvisgix, GLenum, pname, GLint, param); \
    HookWrapper1(void, glframezoomsgix, GLint, factor); \
    HookWrapper2(void, gligloointerfacesgix, GLenum, pname, const void *, params); \
    HookWrapper0(GLint, glgetinstrumentssgix); \
    HookWrapper2(void, glinstrumentsbuffersgix, GLsizei, size, GLint *, buffer); \
    HookWrapper1(GLint, glpollinstrumentssgix, GLint *, marker_p); \
    HookWrapper1(void, glreadinstrumentssgix, GLint, marker); \
    HookWrapper0(void, glstartinstrumentssgix); \
    HookWrapper1(void, glstopinstrumentssgix, GLint, marker); \
    HookWrapper3(void, glgetlistparameterfvsgix, GLuint, list, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetlistparameterivsgix, GLuint, list, GLenum, pname, GLint *, params); \
    HookWrapper3(void, gllistparameterfsgix, GLuint, list, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gllistparameterfvsgix, GLuint, list, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, gllistparameterisgix, GLuint, list, GLenum, pname, GLint, param); \
    HookWrapper3(void, gllistparameterivsgix, GLuint, list, GLenum, pname, const GLint *, params); \
    HookWrapper1(void, glpixeltexgensgix, GLenum, mode); \
    HookWrapper14(void, gldeformationmap3dsgix, GLenum, target, GLdouble, u1, GLdouble, u2, GLint, ustride, GLint, uorder, GLdouble, v1, GLdouble, v2, GLint, vstride, GLint, vorder, GLdouble, w1, GLdouble, w2, GLint, wstride, GLint, worder, const GLdouble *, points); \
    HookWrapper14(void, gldeformationmap3fsgix, GLenum, target, GLfloat, u1, GLfloat, u2, GLint, ustride, GLint, uorder, GLfloat, v1, GLfloat, v2, GLint, vstride, GLint, vorder, GLfloat, w1, GLfloat, w2, GLint, wstride, GLint, worder, const GLfloat *, points); \
    HookWrapper1(void, gldeformsgix, GLbitfield, mask); \
    HookWrapper1(void, glloadidentitydeformationmapsgix, GLbitfield, mask); \
    HookWrapper1(void, glreferenceplanesgix, const GLdouble *, equation); \
    HookWrapper2(void, glspriteparameterfsgix, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glspriteparameterfvsgix, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glspriteparameterisgix, GLenum, pname, GLint, param); \
    HookWrapper2(void, glspriteparameterivsgix, GLenum, pname, const GLint *, params); \
    HookWrapper0(void, gltagsamplebuffersgix); \
    HookWrapper6(void, glcolortablesgi, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper3(void, glcolortableparameterfvsgi, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glcolortableparameterivsgi, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopycolortablesgi, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper4(void, glgetcolortablesgi, GLenum, target, GLenum, format, GLenum, type, void *, table); \
    HookWrapper3(void, glgetcolortableparameterfvsgi, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetcolortableparameterivsgi, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glfinishtexturesunx); \
    HookWrapper1(void, glglobalalphafactorbsun, GLbyte, factor); \
    HookWrapper1(void, glglobalalphafactorssun, GLshort, factor); \
    HookWrapper1(void, glglobalalphafactorisun, GLint, factor); \
    HookWrapper1(void, glglobalalphafactorfsun, GLfloat, factor); \
    HookWrapper1(void, glglobalalphafactordsun, GLdouble, factor); \
    HookWrapper1(void, glglobalalphafactorubsun, GLubyte, factor); \
    HookWrapper1(void, glglobalalphafactorussun, GLushort, factor); \
    HookWrapper1(void, glglobalalphafactoruisun, GLuint, factor); \
    HookWrapper4(void, gldrawmesharrayssun, GLenum, mode, GLint, first, GLsizei, count, GLsizei, width); \
    HookWrapper1(void, glreplacementcodeuisun, GLuint, code); \
    HookWrapper1(void, glreplacementcodeussun, GLushort, code); \
    HookWrapper1(void, glreplacementcodeubsun, GLubyte, code); \
    HookWrapper1(void, glreplacementcodeuivsun, const GLuint *, code); \
    HookWrapper1(void, glreplacementcodeusvsun, const GLushort *, code); \
    HookWrapper1(void, glreplacementcodeubvsun, const GLubyte *, code); \
    HookWrapper3(void, glreplacementcodepointersun, GLenum, type, GLsizei, stride, const void **, pointer); \
    HookWrapper6(void, glcolor4ubvertex2fsun, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glcolor4ubvertex2fvsun, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper7(void, glcolor4ubvertex3fsun, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glcolor4ubvertex3fvsun, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper6(void, glcolor3fvertex3fsun, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glcolor3fvertex3fvsun, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper6(void, glnormal3fvertex3fsun, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glnormal3fvertex3fvsun, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper10(void, glcolor4fnormal3fvertex3fsun, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glcolor4fnormal3fvertex3fvsun, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper5(void, gltexcoord2fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, gltexcoord2fvertex3fvsun, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord4fvertex4fsun, GLfloat, s, GLfloat, t, GLfloat, p, GLfloat, q, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, gltexcoord4fvertex4fvsun, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper9(void, gltexcoord2fcolor4ubvertex3fsun, GLfloat, s, GLfloat, t, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fcolor4ubvertex3fvsun, const GLfloat *, tc, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord2fcolor3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fcolor3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord2fnormal3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fnormal3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper12(void, gltexcoord2fcolor4fnormal3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, gltexcoord2fcolor4fnormal3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper15(void, gltexcoord4fcolor4fnormal3fvertex4fsun, GLfloat, s, GLfloat, t, GLfloat, p, GLfloat, q, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, gltexcoord4fcolor4fnormal3fvertex4fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper4(void, glreplacementcodeuivertex3fsun, GLuint, rc, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glreplacementcodeuivertex3fvsun, const GLuint *, rc, const GLfloat *, v); \
    HookWrapper8(void, glreplacementcodeuicolor4ubvertex3fsun, GLuint, rc, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuicolor4ubvertex3fvsun, const GLuint *, rc, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper7(void, glreplacementcodeuicolor3fvertex3fsun, GLuint, rc, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuicolor3fvertex3fvsun, const GLuint *, rc, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper7(void, glreplacementcodeuinormal3fvertex3fsun, GLuint, rc, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuinormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper11(void, glreplacementcodeuicolor4fnormal3fvertex3fsun, GLuint, rc, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glreplacementcodeuicolor4fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper6(void, glreplacementcodeuitexcoord2fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuitexcoord2fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper9(void, glreplacementcodeuitexcoord2fnormal3fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glreplacementcodeuitexcoord2fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper13(void, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper5(void, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper2(void, glgetpointervkhr, GLenum, pname, void **, params); \
    HookWrapper0(GLenum, glgetgraphicsresetstatuskhr); \
    HookWrapper8(void, glreadnpixelskhr, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
    HookWrapper4(void, glgetnuniformfvkhr, GLuint, program, GLint, location, GLsizei, bufSize, GLfloat *, params); \
    HookWrapper4(void, glgetnuniformivkhr, GLuint, program, GLint, location, GLsizei, bufSize, GLint *, params); \
    HookWrapper4(void, glgetnuniformuivkhr, GLuint, program, GLint, location, GLsizei, bufSize, GLuint *, params); \
    HookWrapper2(void, gleglimagetargettexture2does, GLenum, target, GLeglImageOES, image); \
    HookWrapper2(void, gleglimagetargetrenderbufferstorageoes, GLenum, target, GLeglImageOES, image); \
    HookWrapper2(void, glenableioes, GLenum, target, GLuint, index); \
    HookWrapper2(void, gldisableioes, GLenum, target, GLuint, index); \
    HookWrapper2(void, glblendequationioes, GLuint, buf, GLenum, mode); \
    HookWrapper3(void, glblendequationseparateioes, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper3(void, glblendfuncioes, GLuint, buf, GLenum, src, GLenum, dst); \
    HookWrapper5(void, glblendfuncseparateioes, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
    HookWrapper5(void, glcolormaskioes, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \
    HookWrapper2(GLboolean, glisenabledioes, GLenum, target, GLuint, index); \
    HookWrapper6(void, gldrawelementsinstancedbasevertexoes, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \
    HookWrapper5(void, glgetprogrambinaryoes, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \
    HookWrapper4(void, glprogrambinaryoes, GLuint, program, GLenum, binaryFormat, const void *, binary, GLint, length); \
    HookWrapper8(void, gltextureviewoes, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
    HookWrapper3(void, glviewportarrayvoes, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper5(void, glviewportindexedfoes, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
    HookWrapper2(void, glviewportindexedfvoes, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glscissorarrayvoes, GLuint, first, GLsizei, count, const GLint *, v); \
    HookWrapper5(void, glscissorindexedoes, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glscissorindexedvoes, GLuint, index, const GLint *, v); \
    HookWrapper3(void, gldepthrangearrayfvoes, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, gldepthrangeindexedfoes, GLuint, index, GLfloat, n, GLfloat, f); \
    HookWrapper3(void, glgetfloati_voes, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper10(void, glblitframebufferangle, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper5(void, glrenderbufferstoragemultisampleangle, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, gldrawarraysinstancedangle, GLenum, mode, GLint, first, GLsizei, count, GLsizei, primcount); \
    HookWrapper5(void, gldrawelementsinstancedangle, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, primcount); \
    HookWrapper2(void, glvertexattribdivisorangle, GLuint, index, GLuint, divisor); \
    HookWrapper4(void, glgettranslatedshadersourceangle, GLuint, shader, GLsizei, bufsize, GLsizei *, length, GLchar *, source); \
    HookWrapper4(void, glcopytexturelevelsapple, GLuint, destinationTexture, GLuint, sourceTexture, GLint, sourceBaseLevel, GLsizei, sourceLevelCount); \
    HookWrapper5(void, glrenderbufferstoragemultisampleapple, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper0(void, glresolvemultisampleframebufferapple); \
    HookWrapper2(GLsync, glfencesyncapple, GLenum, condition, GLbitfield, flags); \
    HookWrapper1(GLboolean, glissyncapple, GLsync, sync); \
    HookWrapper1(void, gldeletesyncapple, GLsync, sync); \
    HookWrapper3(GLenum, glclientwaitsyncapple, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper3(void, glwaitsyncapple, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper2(void, glgetinteger64vapple, GLenum, pname, GLint64 *, params); \
    HookWrapper5(void, glgetsyncivapple, GLsync, sync, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \
    HookWrapper4(void, glbindfragdatalocationindexedext, GLuint, program, GLuint, colorNumber, GLuint, index, const GLchar *, name); \
    HookWrapper3(GLint, glgetprogramresourcelocationindexext, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper2(GLint, glgetfragdataindexext, GLuint, program, const GLchar *, name); \
    HookWrapper4(void, glbufferstorageext, GLenum, target, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper5(void, glclearteximageext, GLuint, texture, GLint, level, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper11(void, glcleartexsubimageext, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper2(void, gldrawtransformfeedbackext, GLenum, mode, GLuint, id); \
    HookWrapper3(void, gldrawtransformfeedbackinstancedext, GLenum, mode, GLuint, id, GLsizei, instancecount); \
    HookWrapper2(void, glvertexattribdivisorext, GLuint, index, GLuint, divisor); \
    HookWrapper4(void *, glmapbufferrangeext, GLenum, target, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper3(void, glflushmappedbufferrangeext, GLenum, target, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper4(void, glmultidrawarraysindirectext, GLenum, mode, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper5(void, glmultidrawelementsindirectext, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper2(void, glreadbufferindexedext, GLenum, src, GLint, index); \
    HookWrapper3(void, gldrawbuffersindexedext, GLint, n, const GLenum *, location, const GLint *, indices); \
    HookWrapper3(void, glgetintegeri_vext, GLenum, target, GLuint, index, GLint *, data); \
    HookWrapper0(GLenum, glgetgraphicsresetstatusext); \
    HookWrapper8(void, glreadnpixelsext, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
    HookWrapper4(void, glgetnuniformfvext, GLuint, program, GLint, location, GLsizei, bufSize, GLfloat *, params); \
    HookWrapper4(void, glgetnuniformivext, GLuint, program, GLint, location, GLsizei, bufSize, GLint *, params); \
    HookWrapper2(void, glactiveshaderprogramext, GLuint, pipeline, GLuint, program); \
    HookWrapper1(void, glbindprogrampipelineext, GLuint, pipeline); \
    HookWrapper3(GLuint, glcreateshaderprogramvext, GLenum, type, GLsizei, count, const GLchar **, strings); \
    HookWrapper2(void, gldeleteprogrampipelinesext, GLsizei, n, const GLuint *, pipelines); \
    HookWrapper2(void, glgenprogrampipelinesext, GLsizei, n, GLuint *, pipelines); \
    HookWrapper4(void, glgetprogrampipelineinfologext, GLuint, pipeline, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper3(void, glgetprogrampipelineivext, GLuint, pipeline, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glisprogrampipelineext, GLuint, pipeline); \
    HookWrapper3(void, gluseprogramstagesext, GLuint, pipeline, GLbitfield, stages, GLuint, program); \
    HookWrapper1(void, glvalidateprogrampipelineext, GLuint, pipeline); \
    HookWrapper2(void, glframebufferpixellocalstoragesizeext, GLuint, target, GLsizei, size); \
    HookWrapper1(GLsizei, glgetframebufferpixellocalstoragesizeext, GLuint, target); \
    HookWrapper3(void, glclearpixellocalstorageuiext, GLsizei, offset, GLsizei, n, const GLuint *, values); \
    HookWrapper9(void, gltexpagecommitmentext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, commit); \
    HookWrapper4(void, gltexstorage1dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper5(void, gltexstorage2dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, gltexstorage3dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper8(void, gltextureviewext, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
    HookWrapper3(void, glwindowrectanglesext, GLenum, mode, GLsizei, count, const GLint *, box); \
    HookWrapper1(GLuint64, glgettexturehandleimg, GLuint, texture); \
    HookWrapper2(GLuint64, glgettexturesamplerhandleimg, GLuint, texture, GLuint, sampler); \
    HookWrapper2(void, gluniformhandleui64img, GLint, location, GLuint64, value); \
    HookWrapper3(void, gluniformhandleui64vimg, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glprogramuniformhandleui64img, GLuint, program, GLint, location, GLuint64, value); \
    HookWrapper4(void, glprogramuniformhandleui64vimg, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, values); \
    HookWrapper7(void, glframebuffertexture2ddownsampleimg, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, xscale, GLint, yscale); \
    HookWrapper7(void, glframebuffertexturelayerdownsampleimg, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer, GLint, xscale, GLint, yscale); \
    HookWrapper5(void, glrenderbufferstoragemultisampleimg, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glframebuffertexture2dmultisampleimg, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLsizei, samples); \
    HookWrapper2(void, glconservativerasterparameterinv, GLenum, pname, GLint, param); \
    HookWrapper5(void, glcopybuffersubdatanv, GLenum, readTarget, GLenum, writeTarget, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper1(void, glcoveragemasknv, GLboolean, mask); \
    HookWrapper1(void, glcoverageoperationnv, GLenum, operation); \
    HookWrapper2(void, gldrawbuffersnv, GLsizei, n, const GLenum *, bufs); \
    HookWrapper4(void, gldrawarraysinstancednv, GLenum, mode, GLint, first, GLsizei, count, GLsizei, primcount); \
    HookWrapper5(void, gldrawelementsinstancednv, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, primcount); \
    HookWrapper11(void, gldrawvkimagenv, GLuint64, vkImage, GLuint, sampler, GLfloat, x0, GLfloat, y0, GLfloat, x1, GLfloat, y1, GLfloat, z, GLfloat, s0, GLfloat, t0, GLfloat, s1, GLfloat, t1); \
    HookWrapper1(GLVULKANPROCNV, glgetvkprocaddrnv, const GLchar *, name); \
    HookWrapper1(void, glwaitvksemaphorenv, GLuint64, vkSemaphore); \
    HookWrapper1(void, glsignalvksemaphorenv, GLuint64, vkSemaphore); \
    HookWrapper1(void, glsignalvkfencenv, GLuint64, vkFence); \
    HookWrapper10(void, glblitframebuffernv, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper5(void, glrenderbufferstoragemultisamplenv, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glvertexattribdivisornv, GLuint, index, GLuint, divisor); \
    HookWrapper4(void, gluniformmatrix2x3fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix3x2fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix2x4fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix4x2fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix3x4fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix4x3fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper2(void, glpolygonmodenv, GLenum, face, GLenum, mode); \
    HookWrapper1(void, glreadbuffernv, GLenum, mode); \
    HookWrapper3(void, glviewportarrayvnv, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper5(void, glviewportindexedfnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
    HookWrapper2(void, glviewportindexedfvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glscissorarrayvnv, GLuint, first, GLsizei, count, const GLint *, v); \
    HookWrapper5(void, glscissorindexednv, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glscissorindexedvnv, GLuint, index, const GLint *, v); \
    HookWrapper3(void, gldepthrangearrayfvnv, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, gldepthrangeindexedfnv, GLuint, index, GLfloat, n, GLfloat, f); \
    HookWrapper3(void, glgetfloati_vnv, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper2(void, glenableinv, GLenum, target, GLuint, index); \
    HookWrapper2(void, gldisableinv, GLenum, target, GLuint, index); \
    HookWrapper2(GLboolean, glisenabledinv, GLenum, target, GLuint, index); \
    HookWrapper5(void, glviewportswizzlenv, GLuint, index, GLenum, swizzlex, GLenum, swizzley, GLenum, swizzlez, GLenum, swizzlew); \
    HookWrapper2(void, glalphafuncqcom, GLenum, func, GLclampf, ref); \
    HookWrapper3(void, glgetdrivercontrolsqcom, GLint *, num, GLsizei, size, GLuint *, driverControls); \
    HookWrapper4(void, glgetdrivercontrolstringqcom, GLuint, driverControl, GLsizei, bufSize, GLsizei *, length, GLchar *, driverControlString); \
    HookWrapper1(void, glenabledrivercontrolqcom, GLuint, driverControl); \
    HookWrapper1(void, gldisabledrivercontrolqcom, GLuint, driverControl); \
    HookWrapper3(void, glextgettexturesqcom, GLuint *, textures, GLint, maxTextures, GLint *, numTextures); \
    HookWrapper3(void, glextgetbuffersqcom, GLuint *, buffers, GLint, maxBuffers, GLint *, numBuffers); \
    HookWrapper3(void, glextgetrenderbuffersqcom, GLuint *, renderbuffers, GLint, maxRenderbuffers, GLint *, numRenderbuffers); \
    HookWrapper3(void, glextgetframebuffersqcom, GLuint *, framebuffers, GLint, maxFramebuffers, GLint *, numFramebuffers); \
    HookWrapper5(void, glextgettexlevelparameterivqcom, GLuint, texture, GLenum, face, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glexttexobjectstateoverrideiqcom, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper11(void, glextgettexsubimageqcom, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, void *, texels); \
    HookWrapper2(void, glextgetbufferpointervqcom, GLenum, target, void **, params); \
    HookWrapper3(void, glextgetshadersqcom, GLuint *, shaders, GLint, maxShaders, GLint *, numShaders); \
    HookWrapper3(void, glextgetprogramsqcom, GLuint *, programs, GLint, maxPrograms, GLint *, numPrograms); \
    HookWrapper1(GLboolean, glextisprogrambinaryqcom, GLuint, program); \
    HookWrapper4(void, glextgetprogrambinarysourceqcom, GLuint, program, GLenum, shadertype, GLchar *, source, GLint *, length); \
    HookWrapper5(void, glframebufferfoveationconfigqcom, GLuint, framebuffer, GLuint, numLayers, GLuint, focalPointsPerLayer, GLuint, requestedFeatures, GLuint *, providedFeatures); \
    HookWrapper8(void, glframebufferfoveationparametersqcom, GLuint, framebuffer, GLuint, layer, GLuint, focalPoint, GLfloat, focalX, GLfloat, focalY, GLfloat, gainX, GLfloat, gainY, GLfloat, foveaArea); \
    HookWrapper0(void, glframebufferfetchbarrierqcom); \
    HookWrapper5(void, glstarttilingqcom, GLuint, x, GLuint, y, GLuint, width, GLuint, height, GLbitfield, preserveMask); \
    HookWrapper1(void, glendtilingqcom, GLbitfield, preserveMask); \
    HookWrapper2(void, glnewlist, GLuint, list, GLenum, mode); \
    HookWrapper0(void, glendlist); \
    HookWrapper1(void, glcalllist, GLuint, list); \
    HookWrapper3(void, glcalllists, GLsizei, n, GLenum, type, const void *, lists); \
    HookWrapper2(void, gldeletelists, GLuint, list, GLsizei, range); \
    HookWrapper1(GLuint, glgenlists, GLsizei, range); \
    HookWrapper1(void, gllistbase, GLuint, base); \
    HookWrapper1(void, glbegin, GLenum, mode); \
    HookWrapper7(void, glbitmap, GLsizei, width, GLsizei, height, GLfloat, xorig, GLfloat, yorig, GLfloat, xmove, GLfloat, ymove, const GLubyte *, bitmap); \
    HookWrapper3(void, glcolor3b, GLbyte, red, GLbyte, green, GLbyte, blue); \
    HookWrapper1(void, glcolor3bv, const GLbyte *, v); \
    HookWrapper3(void, glcolor3d, GLdouble, red, GLdouble, green, GLdouble, blue); \
    HookWrapper1(void, glcolor3dv, const GLdouble *, v); \
    HookWrapper3(void, glcolor3f, GLfloat, red, GLfloat, green, GLfloat, blue); \
    HookWrapper1(void, glcolor3fv, const GLfloat *, v); \
    HookWrapper3(void, glcolor3i, GLint, red, GLint, green, GLint, blue); \
    HookWrapper1(void, glcolor3iv, const GLint *, v); \
    HookWrapper3(void, glcolor3s, GLshort, red, GLshort, green, GLshort, blue); \
    HookWrapper1(void, glcolor3sv, const GLshort *, v); \
    HookWrapper3(void, glcolor3ub, GLubyte, red, GLubyte, green, GLubyte, blue); \
    HookWrapper1(void, glcolor3ubv, const GLubyte *, v); \
    HookWrapper3(void, glcolor3ui, GLuint, red, GLuint, green, GLuint, blue); \
    HookWrapper1(void, glcolor3uiv, const GLuint *, v); \
    HookWrapper3(void, glcolor3us, GLushort, red, GLushort, green, GLushort, blue); \
    HookWrapper1(void, glcolor3usv, const GLushort *, v); \
    HookWrapper4(void, glcolor4b, GLbyte, red, GLbyte, green, GLbyte, blue, GLbyte, alpha); \
    HookWrapper1(void, glcolor4bv, const GLbyte *, v); \
    HookWrapper4(void, glcolor4d, GLdouble, red, GLdouble, green, GLdouble, blue, GLdouble, alpha); \
    HookWrapper1(void, glcolor4dv, const GLdouble *, v); \
    HookWrapper4(void, glcolor4f, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glcolor4fv, const GLfloat *, v); \
    HookWrapper4(void, glcolor4i, GLint, red, GLint, green, GLint, blue, GLint, alpha); \
    HookWrapper1(void, glcolor4iv, const GLint *, v); \
    HookWrapper4(void, glcolor4s, GLshort, red, GLshort, green, GLshort, blue, GLshort, alpha); \
    HookWrapper1(void, glcolor4sv, const GLshort *, v); \
    HookWrapper4(void, glcolor4ub, GLubyte, red, GLubyte, green, GLubyte, blue, GLubyte, alpha); \
    HookWrapper1(void, glcolor4ubv, const GLubyte *, v); \
    HookWrapper4(void, glcolor4ui, GLuint, red, GLuint, green, GLuint, blue, GLuint, alpha); \
    HookWrapper1(void, glcolor4uiv, const GLuint *, v); \
    HookWrapper4(void, glcolor4us, GLushort, red, GLushort, green, GLushort, blue, GLushort, alpha); \
    HookWrapper1(void, glcolor4usv, const GLushort *, v); \
    HookWrapper1(void, gledgeflag, GLboolean, flag); \
    HookWrapper1(void, gledgeflagv, const GLboolean *, flag); \
    HookWrapper0(void, glend); \
    HookWrapper1(void, glindexd, GLdouble, c); \
    HookWrapper1(void, glindexdv, const GLdouble *, c); \
    HookWrapper1(void, glindexf, GLfloat, c); \
    HookWrapper1(void, glindexfv, const GLfloat *, c); \
    HookWrapper1(void, glindexi, GLint, c); \
    HookWrapper1(void, glindexiv, const GLint *, c); \
    HookWrapper1(void, glindexs, GLshort, c); \
    HookWrapper1(void, glindexsv, const GLshort *, c); \
    HookWrapper3(void, glnormal3b, GLbyte, nx, GLbyte, ny, GLbyte, nz); \
    HookWrapper1(void, glnormal3bv, const GLbyte *, v); \
    HookWrapper3(void, glnormal3d, GLdouble, nx, GLdouble, ny, GLdouble, nz); \
    HookWrapper1(void, glnormal3dv, const GLdouble *, v); \
    HookWrapper3(void, glnormal3f, GLfloat, nx, GLfloat, ny, GLfloat, nz); \
    HookWrapper1(void, glnormal3fv, const GLfloat *, v); \
    HookWrapper3(void, glnormal3i, GLint, nx, GLint, ny, GLint, nz); \
    HookWrapper1(void, glnormal3iv, const GLint *, v); \
    HookWrapper3(void, glnormal3s, GLshort, nx, GLshort, ny, GLshort, nz); \
    HookWrapper1(void, glnormal3sv, const GLshort *, v); \
    HookWrapper2(void, glrasterpos2d, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glrasterpos2dv, const GLdouble *, v); \
    HookWrapper2(void, glrasterpos2f, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glrasterpos2fv, const GLfloat *, v); \
    HookWrapper2(void, glrasterpos2i, GLint, x, GLint, y); \
    HookWrapper1(void, glrasterpos2iv, const GLint *, v); \
    HookWrapper2(void, glrasterpos2s, GLshort, x, GLshort, y); \
    HookWrapper1(void, glrasterpos2sv, const GLshort *, v); \
    HookWrapper3(void, glrasterpos3d, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glrasterpos3dv, const GLdouble *, v); \
    HookWrapper3(void, glrasterpos3f, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glrasterpos3fv, const GLfloat *, v); \
    HookWrapper3(void, glrasterpos3i, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glrasterpos3iv, const GLint *, v); \
    HookWrapper3(void, glrasterpos3s, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glrasterpos3sv, const GLshort *, v); \
    HookWrapper4(void, glrasterpos4d, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper1(void, glrasterpos4dv, const GLdouble *, v); \
    HookWrapper4(void, glrasterpos4f, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper1(void, glrasterpos4fv, const GLfloat *, v); \
    HookWrapper4(void, glrasterpos4i, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper1(void, glrasterpos4iv, const GLint *, v); \
    HookWrapper4(void, glrasterpos4s, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper1(void, glrasterpos4sv, const GLshort *, v); \
    HookWrapper4(void, glrectd, GLdouble, x1, GLdouble, y1, GLdouble, x2, GLdouble, y2); \
    HookWrapper2(void, glrectdv, const GLdouble *, v1, const GLdouble *, v2); \
    HookWrapper4(void, glrectf, GLfloat, x1, GLfloat, y1, GLfloat, x2, GLfloat, y2); \
    HookWrapper2(void, glrectfv, const GLfloat *, v1, const GLfloat *, v2); \
    HookWrapper4(void, glrecti, GLint, x1, GLint, y1, GLint, x2, GLint, y2); \
    HookWrapper2(void, glrectiv, const GLint *, v1, const GLint *, v2); \
    HookWrapper4(void, glrects, GLshort, x1, GLshort, y1, GLshort, x2, GLshort, y2); \
    HookWrapper2(void, glrectsv, const GLshort *, v1, const GLshort *, v2); \
    HookWrapper1(void, gltexcoord1d, GLdouble, s); \
    HookWrapper1(void, gltexcoord1dv, const GLdouble *, v); \
    HookWrapper1(void, gltexcoord1f, GLfloat, s); \
    HookWrapper1(void, gltexcoord1fv, const GLfloat *, v); \
    HookWrapper1(void, gltexcoord1i, GLint, s); \
    HookWrapper1(void, gltexcoord1iv, const GLint *, v); \
    HookWrapper1(void, gltexcoord1s, GLshort, s); \
    HookWrapper1(void, gltexcoord1sv, const GLshort *, v); \
    HookWrapper2(void, gltexcoord2d, GLdouble, s, GLdouble, t); \
    HookWrapper1(void, gltexcoord2dv, const GLdouble *, v); \
    HookWrapper2(void, gltexcoord2f, GLfloat, s, GLfloat, t); \
    HookWrapper1(void, gltexcoord2fv, const GLfloat *, v); \
    HookWrapper2(void, gltexcoord2i, GLint, s, GLint, t); \
    HookWrapper1(void, gltexcoord2iv, const GLint *, v); \
    HookWrapper2(void, gltexcoord2s, GLshort, s, GLshort, t); \
    HookWrapper1(void, gltexcoord2sv, const GLshort *, v); \
    HookWrapper3(void, gltexcoord3d, GLdouble, s, GLdouble, t, GLdouble, r); \
    HookWrapper1(void, gltexcoord3dv, const GLdouble *, v); \
    HookWrapper3(void, gltexcoord3f, GLfloat, s, GLfloat, t, GLfloat, r); \
    HookWrapper1(void, gltexcoord3fv, const GLfloat *, v); \
    HookWrapper3(void, gltexcoord3i, GLint, s, GLint, t, GLint, r); \
    HookWrapper1(void, gltexcoord3iv, const GLint *, v); \
    HookWrapper3(void, gltexcoord3s, GLshort, s, GLshort, t, GLshort, r); \
    HookWrapper1(void, gltexcoord3sv, const GLshort *, v); \
    HookWrapper4(void, gltexcoord4d, GLdouble, s, GLdouble, t, GLdouble, r, GLdouble, q); \
    HookWrapper1(void, gltexcoord4dv, const GLdouble *, v); \
    HookWrapper4(void, gltexcoord4f, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, q); \
    HookWrapper1(void, gltexcoord4fv, const GLfloat *, v); \
    HookWrapper4(void, gltexcoord4i, GLint, s, GLint, t, GLint, r, GLint, q); \
    HookWrapper1(void, gltexcoord4iv, const GLint *, v); \
    HookWrapper4(void, gltexcoord4s, GLshort, s, GLshort, t, GLshort, r, GLshort, q); \
    HookWrapper1(void, gltexcoord4sv, const GLshort *, v); \
    HookWrapper2(void, glvertex2d, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glvertex2dv, const GLdouble *, v); \
    HookWrapper2(void, glvertex2f, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glvertex2fv, const GLfloat *, v); \
    HookWrapper2(void, glvertex2i, GLint, x, GLint, y); \
    HookWrapper1(void, glvertex2iv, const GLint *, v); \
    HookWrapper2(void, glvertex2s, GLshort, x, GLshort, y); \
    HookWrapper1(void, glvertex2sv, const GLshort *, v); \
    HookWrapper3(void, glvertex3d, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glvertex3dv, const GLdouble *, v); \
    HookWrapper3(void, glvertex3f, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glvertex3fv, const GLfloat *, v); \
    HookWrapper3(void, glvertex3i, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glvertex3iv, const GLint *, v); \
    HookWrapper3(void, glvertex3s, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glvertex3sv, const GLshort *, v); \
    HookWrapper4(void, glvertex4d, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper1(void, glvertex4dv, const GLdouble *, v); \
    HookWrapper4(void, glvertex4f, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper1(void, glvertex4fv, const GLfloat *, v); \
    HookWrapper4(void, glvertex4i, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper1(void, glvertex4iv, const GLint *, v); \
    HookWrapper4(void, glvertex4s, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper1(void, glvertex4sv, const GLshort *, v); \
    HookWrapper2(void, glclipplane, GLenum, plane, const GLdouble *, equation); \
    HookWrapper2(void, glcolormaterial, GLenum, face, GLenum, mode); \
    HookWrapper2(void, glfogf, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glfogfv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glfogi, GLenum, pname, GLint, param); \
    HookWrapper2(void, glfogiv, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, gllightf, GLenum, light, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gllightfv, GLenum, light, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, gllighti, GLenum, light, GLenum, pname, GLint, param); \
    HookWrapper3(void, gllightiv, GLenum, light, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, gllightmodelf, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, gllightmodelfv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, gllightmodeli, GLenum, pname, GLint, param); \
    HookWrapper2(void, gllightmodeliv, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, gllinestipple, GLint, factor, GLushort, pattern); \
    HookWrapper3(void, glmaterialf, GLenum, face, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glmaterialfv, GLenum, face, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glmateriali, GLenum, face, GLenum, pname, GLint, param); \
    HookWrapper3(void, glmaterialiv, GLenum, face, GLenum, pname, const GLint *, params); \
    HookWrapper1(void, glpolygonstipple, const GLubyte *, mask); \
    HookWrapper1(void, glshademodel, GLenum, mode); \
    HookWrapper3(void, gltexenvf, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gltexenvfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, gltexenvi, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, gltexenviv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, gltexgend, GLenum, coord, GLenum, pname, GLdouble, param); \
    HookWrapper3(void, gltexgendv, GLenum, coord, GLenum, pname, const GLdouble *, params); \
    HookWrapper3(void, gltexgenf, GLenum, coord, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gltexgenfv, GLenum, coord, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, gltexgeni, GLenum, coord, GLenum, pname, GLint, param); \
    HookWrapper3(void, gltexgeniv, GLenum, coord, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glfeedbackbuffer, GLsizei, size, GLenum, type, GLfloat *, buffer); \
    HookWrapper2(void, glselectbuffer, GLsizei, size, GLuint *, buffer); \
    HookWrapper1(GLint, glrendermode, GLenum, mode); \
    HookWrapper0(void, glinitnames); \
    HookWrapper1(void, glloadname, GLuint, name); \
    HookWrapper1(void, glpassthrough, GLfloat, token); \
    HookWrapper0(void, glpopname); \
    HookWrapper1(void, glpushname, GLuint, name); \
    HookWrapper4(void, glclearaccum, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glclearindex, GLfloat, c); \
    HookWrapper1(void, glindexmask, GLuint, mask); \
    HookWrapper2(void, glaccum, GLenum, op, GLfloat, value); \
    HookWrapper0(void, glpopattrib); \
    HookWrapper1(void, glpushattrib, GLbitfield, mask); \
    HookWrapper6(void, glmap1d, GLenum, target, GLdouble, u1, GLdouble, u2, GLint, stride, GLint, order, const GLdouble *, points); \
    HookWrapper6(void, glmap1f, GLenum, target, GLfloat, u1, GLfloat, u2, GLint, stride, GLint, order, const GLfloat *, points); \
    HookWrapper10(void, glmap2d, GLenum, target, GLdouble, u1, GLdouble, u2, GLint, ustride, GLint, uorder, GLdouble, v1, GLdouble, v2, GLint, vstride, GLint, vorder, const GLdouble *, points); \
    HookWrapper10(void, glmap2f, GLenum, target, GLfloat, u1, GLfloat, u2, GLint, ustride, GLint, uorder, GLfloat, v1, GLfloat, v2, GLint, vstride, GLint, vorder, const GLfloat *, points); \
    HookWrapper3(void, glmapgrid1d, GLint, un, GLdouble, u1, GLdouble, u2); \
    HookWrapper3(void, glmapgrid1f, GLint, un, GLfloat, u1, GLfloat, u2); \
    HookWrapper6(void, glmapgrid2d, GLint, un, GLdouble, u1, GLdouble, u2, GLint, vn, GLdouble, v1, GLdouble, v2); \
    HookWrapper6(void, glmapgrid2f, GLint, un, GLfloat, u1, GLfloat, u2, GLint, vn, GLfloat, v1, GLfloat, v2); \
    HookWrapper1(void, glevalcoord1d, GLdouble, u); \
    HookWrapper1(void, glevalcoord1dv, const GLdouble *, u); \
    HookWrapper1(void, glevalcoord1f, GLfloat, u); \
    HookWrapper1(void, glevalcoord1fv, const GLfloat *, u); \
    HookWrapper2(void, glevalcoord2d, GLdouble, u, GLdouble, v); \
    HookWrapper1(void, glevalcoord2dv, const GLdouble *, u); \
    HookWrapper2(void, glevalcoord2f, GLfloat, u, GLfloat, v); \
    HookWrapper1(void, glevalcoord2fv, const GLfloat *, u); \
    HookWrapper3(void, glevalmesh1, GLenum, mode, GLint, i1, GLint, i2); \
    HookWrapper1(void, glevalpoint1, GLint, i); \
    HookWrapper5(void, glevalmesh2, GLenum, mode, GLint, i1, GLint, i2, GLint, j1, GLint, j2); \
    HookWrapper2(void, glevalpoint2, GLint, i, GLint, j); \
    HookWrapper2(void, glalphafunc, GLenum, func, GLfloat, ref); \
    HookWrapper2(void, glpixelzoom, GLfloat, xfactor, GLfloat, yfactor); \
    HookWrapper2(void, glpixeltransferf, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpixeltransferi, GLenum, pname, GLint, param); \
    HookWrapper3(void, glpixelmapfv, GLenum, map, GLsizei, mapsize, const GLfloat *, values); \
    HookWrapper3(void, glpixelmapuiv, GLenum, map, GLsizei, mapsize, const GLuint *, values); \
    HookWrapper3(void, glpixelmapusv, GLenum, map, GLsizei, mapsize, const GLushort *, values); \
    HookWrapper5(void, glcopypixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, type); \
    HookWrapper5(void, gldrawpixels, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper2(void, glgetclipplane, GLenum, plane, GLdouble *, equation); \
    HookWrapper3(void, glgetlightfv, GLenum, light, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetlightiv, GLenum, light, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetmapdv, GLenum, target, GLenum, query, GLdouble *, v); \
    HookWrapper3(void, glgetmapfv, GLenum, target, GLenum, query, GLfloat *, v); \
    HookWrapper3(void, glgetmapiv, GLenum, target, GLenum, query, GLint *, v); \
    HookWrapper3(void, glgetmaterialfv, GLenum, face, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetmaterialiv, GLenum, face, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glgetpixelmapfv, GLenum, map, GLfloat *, values); \
    HookWrapper2(void, glgetpixelmapuiv, GLenum, map, GLuint *, values); \
    HookWrapper2(void, glgetpixelmapusv, GLenum, map, GLushort *, values); \
    HookWrapper1(void, glgetpolygonstipple, GLubyte *, mask); \
    HookWrapper3(void, glgettexenvfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgettexenviv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgettexgendv, GLenum, coord, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glgettexgenfv, GLenum, coord, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgettexgeniv, GLenum, coord, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glislist, GLuint, list); \
    HookWrapper6(void, glfrustum, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper0(void, glloadidentity); \
    HookWrapper1(void, glloadmatrixf, const GLfloat *, m); \
    HookWrapper1(void, glloadmatrixd, const GLdouble *, m); \
    HookWrapper1(void, glmatrixmode, GLenum, mode); \
    HookWrapper1(void, glmultmatrixf, const GLfloat *, m); \
    HookWrapper1(void, glmultmatrixd, const GLdouble *, m); \
    HookWrapper6(void, glortho, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper0(void, glpopmatrix); \
    HookWrapper0(void, glpushmatrix); \
    HookWrapper4(void, glrotated, GLdouble, angle, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper4(void, glrotatef, GLfloat, angle, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glscaled, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper3(void, glscalef, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltranslated, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper3(void, gltranslatef, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glarrayelement, GLint, i); \
    HookWrapper4(void, glcolorpointer, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, gldisableclientstate, GLenum, array); \
    HookWrapper2(void, gledgeflagpointer, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, glenableclientstate, GLenum, array); \
    HookWrapper3(void, glindexpointer, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glinterleavedarrays, GLenum, format, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glnormalpointer, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, gltexcoordpointer, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, glvertexpointer, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(GLboolean, glaretexturesresident, GLsizei, n, const GLuint *, textures, GLboolean *, residences); \
    HookWrapper3(void, glprioritizetextures, GLsizei, n, const GLuint *, textures, const GLfloat *, priorities); \
    HookWrapper1(void, glindexub, GLubyte, c); \
    HookWrapper1(void, glindexubv, const GLubyte *, c); \
    HookWrapper0(void, glpopclientattrib); \
    HookWrapper1(void, glpushclientattrib, GLbitfield, mask); \



#define CheckUnsupported() \
    HandleUnsupported(PFNGLGETTEXTUREHANDLEARBPROC, glgettexturehandlearb); \
    HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEARBPROC, glgettexturesamplerhandlearb); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLERESIDENTARBPROC, glmaketexturehandleresidentarb); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC, glmaketexturehandlenonresidentarb); \
    HandleUnsupported(PFNGLGETIMAGEHANDLEARBPROC, glgetimagehandlearb); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLERESIDENTARBPROC, glmakeimagehandleresidentarb); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC, glmakeimagehandlenonresidentarb); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64ARBPROC, gluniformhandleui64arb); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64VARBPROC, gluniformhandleui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC, glprogramuniformhandleui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC, glprogramuniformhandleui64varb); \
    HandleUnsupported(PFNGLISTEXTUREHANDLERESIDENTARBPROC, glistexturehandleresidentarb); \
    HandleUnsupported(PFNGLISIMAGEHANDLERESIDENTARBPROC, glisimagehandleresidentarb); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64ARBPROC, glvertexattribl1ui64arb); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64VARBPROC, glvertexattribl1ui64varb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLUI64VARBPROC, glgetvertexattriblui64varb); \
    HandleUnsupported(PFNGLCREATESYNCFROMCLEVENTARBPROC, glcreatesyncfromcleventarb); \
    HandleUnsupported(PFNGLBUFFERPAGECOMMITMENTARBPROC, glbufferpagecommitmentarb); \
    HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC, glnamedbufferpagecommitmentext); \
    HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC, glnamedbufferpagecommitmentarb); \
    HandleUnsupported(PFNGLTEXPAGECOMMITMENTARBPROC, gltexpagecommitmentarb); \
    HandleUnsupported(PFNGLCLIENTACTIVETEXTUREPROC, glclientactivetexture); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DPROC, glmultitexcoord1d); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DVPROC, glmultitexcoord1dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FPROC, glmultitexcoord1f); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FVPROC, glmultitexcoord1fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IPROC, glmultitexcoord1i); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IVPROC, glmultitexcoord1iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SPROC, glmultitexcoord1s); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SVPROC, glmultitexcoord1sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DPROC, glmultitexcoord2d); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DVPROC, glmultitexcoord2dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FPROC, glmultitexcoord2f); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FVPROC, glmultitexcoord2fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IPROC, glmultitexcoord2i); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IVPROC, glmultitexcoord2iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SPROC, glmultitexcoord2s); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SVPROC, glmultitexcoord2sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DPROC, glmultitexcoord3d); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DVPROC, glmultitexcoord3dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FPROC, glmultitexcoord3f); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FVPROC, glmultitexcoord3fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IPROC, glmultitexcoord3i); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IVPROC, glmultitexcoord3iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SPROC, glmultitexcoord3s); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SVPROC, glmultitexcoord3sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DPROC, glmultitexcoord4d); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DVPROC, glmultitexcoord4dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FPROC, glmultitexcoord4f); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FVPROC, glmultitexcoord4fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IPROC, glmultitexcoord4i); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IVPROC, glmultitexcoord4iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SPROC, glmultitexcoord4s); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SVPROC, glmultitexcoord4sv); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXFPROC, glloadtransposematrixf); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXDPROC, glloadtransposematrixd); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXFPROC, glmulttransposematrixf); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXDPROC, glmulttransposematrixd); \
    HandleUnsupported(PFNGLFOGCOORDFPROC, glfogcoordf); \
    HandleUnsupported(PFNGLFOGCOORDFVPROC, glfogcoordfv); \
    HandleUnsupported(PFNGLFOGCOORDDPROC, glfogcoordd); \
    HandleUnsupported(PFNGLFOGCOORDDVPROC, glfogcoorddv); \
    HandleUnsupported(PFNGLFOGCOORDPOINTERPROC, glfogcoordpointer); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BPROC, glsecondarycolor3b); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BVPROC, glsecondarycolor3bv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DPROC, glsecondarycolor3d); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DVPROC, glsecondarycolor3dv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FPROC, glsecondarycolor3f); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FVPROC, glsecondarycolor3fv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IPROC, glsecondarycolor3i); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IVPROC, glsecondarycolor3iv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SPROC, glsecondarycolor3s); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SVPROC, glsecondarycolor3sv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBPROC, glsecondarycolor3ub); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBVPROC, glsecondarycolor3ubv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIPROC, glsecondarycolor3ui); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIVPROC, glsecondarycolor3uiv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USPROC, glsecondarycolor3us); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USVPROC, glsecondarycolor3usv); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTERPROC, glsecondarycolorpointer); \
    HandleUnsupported(PFNGLWINDOWPOS2DPROC, glwindowpos2d); \
    HandleUnsupported(PFNGLWINDOWPOS2DVPROC, glwindowpos2dv); \
    HandleUnsupported(PFNGLWINDOWPOS2FPROC, glwindowpos2f); \
    HandleUnsupported(PFNGLWINDOWPOS2FVPROC, glwindowpos2fv); \
    HandleUnsupported(PFNGLWINDOWPOS2IPROC, glwindowpos2i); \
    HandleUnsupported(PFNGLWINDOWPOS2IVPROC, glwindowpos2iv); \
    HandleUnsupported(PFNGLWINDOWPOS2SPROC, glwindowpos2s); \
    HandleUnsupported(PFNGLWINDOWPOS2SVPROC, glwindowpos2sv); \
    HandleUnsupported(PFNGLWINDOWPOS3DPROC, glwindowpos3d); \
    HandleUnsupported(PFNGLWINDOWPOS3DVPROC, glwindowpos3dv); \
    HandleUnsupported(PFNGLWINDOWPOS3FPROC, glwindowpos3f); \
    HandleUnsupported(PFNGLWINDOWPOS3FVPROC, glwindowpos3fv); \
    HandleUnsupported(PFNGLWINDOWPOS3IPROC, glwindowpos3i); \
    HandleUnsupported(PFNGLWINDOWPOS3IVPROC, glwindowpos3iv); \
    HandleUnsupported(PFNGLWINDOWPOS3SPROC, glwindowpos3s); \
    HandleUnsupported(PFNGLWINDOWPOS3SVPROC, glwindowpos3sv); \
    HandleUnsupported(PFNGLVERTEXP2UIPROC, glvertexp2ui); \
    HandleUnsupported(PFNGLVERTEXP2UIVPROC, glvertexp2uiv); \
    HandleUnsupported(PFNGLVERTEXP3UIPROC, glvertexp3ui); \
    HandleUnsupported(PFNGLVERTEXP3UIVPROC, glvertexp3uiv); \
    HandleUnsupported(PFNGLVERTEXP4UIPROC, glvertexp4ui); \
    HandleUnsupported(PFNGLVERTEXP4UIVPROC, glvertexp4uiv); \
    HandleUnsupported(PFNGLTEXCOORDP1UIPROC, gltexcoordp1ui); \
    HandleUnsupported(PFNGLTEXCOORDP1UIVPROC, gltexcoordp1uiv); \
    HandleUnsupported(PFNGLTEXCOORDP2UIPROC, gltexcoordp2ui); \
    HandleUnsupported(PFNGLTEXCOORDP2UIVPROC, gltexcoordp2uiv); \
    HandleUnsupported(PFNGLTEXCOORDP3UIPROC, gltexcoordp3ui); \
    HandleUnsupported(PFNGLTEXCOORDP3UIVPROC, gltexcoordp3uiv); \
    HandleUnsupported(PFNGLTEXCOORDP4UIPROC, gltexcoordp4ui); \
    HandleUnsupported(PFNGLTEXCOORDP4UIVPROC, gltexcoordp4uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP1UIPROC, glmultitexcoordp1ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP1UIVPROC, glmultitexcoordp1uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP2UIPROC, glmultitexcoordp2ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP2UIVPROC, glmultitexcoordp2uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP3UIPROC, glmultitexcoordp3ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP3UIVPROC, glmultitexcoordp3uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP4UIPROC, glmultitexcoordp4ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP4UIVPROC, glmultitexcoordp4uiv); \
    HandleUnsupported(PFNGLNORMALP3UIPROC, glnormalp3ui); \
    HandleUnsupported(PFNGLNORMALP3UIVPROC, glnormalp3uiv); \
    HandleUnsupported(PFNGLCOLORP3UIPROC, glcolorp3ui); \
    HandleUnsupported(PFNGLCOLORP3UIVPROC, glcolorp3uiv); \
    HandleUnsupported(PFNGLCOLORP4UIPROC, glcolorp4ui); \
    HandleUnsupported(PFNGLCOLORP4UIVPROC, glcolorp4uiv); \
    HandleUnsupported(PFNGLSECONDARYCOLORP3UIPROC, glsecondarycolorp3ui); \
    HandleUnsupported(PFNGLSECONDARYCOLORP3UIVPROC, glsecondarycolorp3uiv); \
    HandleUnsupported(PFNGLGETNMAPDVPROC, glgetnmapdv); \
    HandleUnsupported(PFNGLGETNMAPFVPROC, glgetnmapfv); \
    HandleUnsupported(PFNGLGETNMAPIVPROC, glgetnmapiv); \
    HandleUnsupported(PFNGLGETNPIXELMAPFVPROC, glgetnpixelmapfv); \
    HandleUnsupported(PFNGLGETNPIXELMAPUIVPROC, glgetnpixelmapuiv); \
    HandleUnsupported(PFNGLGETNPIXELMAPUSVPROC, glgetnpixelmapusv); \
    HandleUnsupported(PFNGLGETNPOLYGONSTIPPLEPROC, glgetnpolygonstipple); \
    HandleUnsupported(PFNGLGETNCOLORTABLEPROC, glgetncolortable); \
    HandleUnsupported(PFNGLGETNCONVOLUTIONFILTERPROC, glgetnconvolutionfilter); \
    HandleUnsupported(PFNGLGETNSEPARABLEFILTERPROC, glgetnseparablefilter); \
    HandleUnsupported(PFNGLGETNHISTOGRAMPROC, glgetnhistogram); \
    HandleUnsupported(PFNGLGETNMINMAXPROC, glgetnminmax); \
    HandleUnsupported(PFNGLPRIMITIVEBOUNDINGBOXARBPROC, glprimitiveboundingboxarb); \
    HandleUnsupported(PFNGLPROGRAMSTRINGARBPROC, glprogramstringarb); \
    HandleUnsupported(PFNGLBINDPROGRAMARBPROC, glbindprogramarb); \
    HandleUnsupported(PFNGLDELETEPROGRAMSARBPROC, gldeleteprogramsarb); \
    HandleUnsupported(PFNGLGENPROGRAMSARBPROC, glgenprogramsarb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4DARBPROC, glprogramenvparameter4darb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4DVARBPROC, glprogramenvparameter4dvarb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4FARBPROC, glprogramenvparameter4farb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4FVARBPROC, glprogramenvparameter4fvarb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4DARBPROC, glprogramlocalparameter4darb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4DVARBPROC, glprogramlocalparameter4dvarb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4FARBPROC, glprogramlocalparameter4farb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glprogramlocalparameter4fvarb); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERDVARBPROC, glgetprogramenvparameterdvarb); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERFVARBPROC, glgetprogramenvparameterfvarb); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC, glgetprogramlocalparameterdvarb); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC, glgetprogramlocalparameterfvarb); \
    HandleUnsupported(PFNGLGETPROGRAMIVARBPROC, glgetprogramivarb); \
    HandleUnsupported(PFNGLGETPROGRAMSTRINGARBPROC, glgetprogramstringarb); \
    HandleUnsupported(PFNGLISPROGRAMARBPROC, glisprogramarb); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREFACEARBPROC, glframebuffertexturefacearb); \
    HandleUnsupported(PFNGLUNIFORM1I64ARBPROC, gluniform1i64arb); \
    HandleUnsupported(PFNGLUNIFORM2I64ARBPROC, gluniform2i64arb); \
    HandleUnsupported(PFNGLUNIFORM3I64ARBPROC, gluniform3i64arb); \
    HandleUnsupported(PFNGLUNIFORM4I64ARBPROC, gluniform4i64arb); \
    HandleUnsupported(PFNGLUNIFORM1I64VARBPROC, gluniform1i64varb); \
    HandleUnsupported(PFNGLUNIFORM2I64VARBPROC, gluniform2i64varb); \
    HandleUnsupported(PFNGLUNIFORM3I64VARBPROC, gluniform3i64varb); \
    HandleUnsupported(PFNGLUNIFORM4I64VARBPROC, gluniform4i64varb); \
    HandleUnsupported(PFNGLUNIFORM1UI64ARBPROC, gluniform1ui64arb); \
    HandleUnsupported(PFNGLUNIFORM2UI64ARBPROC, gluniform2ui64arb); \
    HandleUnsupported(PFNGLUNIFORM3UI64ARBPROC, gluniform3ui64arb); \
    HandleUnsupported(PFNGLUNIFORM4UI64ARBPROC, gluniform4ui64arb); \
    HandleUnsupported(PFNGLUNIFORM1UI64VARBPROC, gluniform1ui64varb); \
    HandleUnsupported(PFNGLUNIFORM2UI64VARBPROC, gluniform2ui64varb); \
    HandleUnsupported(PFNGLUNIFORM3UI64VARBPROC, gluniform3ui64varb); \
    HandleUnsupported(PFNGLUNIFORM4UI64VARBPROC, gluniform4ui64varb); \
    HandleUnsupported(PFNGLGETUNIFORMI64VARBPROC, glgetuniformi64varb); \
    HandleUnsupported(PFNGLGETUNIFORMUI64VARBPROC, glgetuniformui64varb); \
    HandleUnsupported(PFNGLGETNUNIFORMI64VARBPROC, glgetnuniformi64varb); \
    HandleUnsupported(PFNGLGETNUNIFORMUI64VARBPROC, glgetnuniformui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64ARBPROC, glprogramuniform1i64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64ARBPROC, glprogramuniform2i64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64ARBPROC, glprogramuniform3i64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64ARBPROC, glprogramuniform4i64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64VARBPROC, glprogramuniform1i64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64VARBPROC, glprogramuniform2i64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64VARBPROC, glprogramuniform3i64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64VARBPROC, glprogramuniform4i64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64ARBPROC, glprogramuniform1ui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64ARBPROC, glprogramuniform2ui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64ARBPROC, glprogramuniform3ui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64ARBPROC, glprogramuniform4ui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64VARBPROC, glprogramuniform1ui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64VARBPROC, glprogramuniform2ui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64VARBPROC, glprogramuniform3ui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64VARBPROC, glprogramuniform4ui64varb); \
    HandleUnsupported(PFNGLCOLORTABLEPROC, glcolortable); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERFVPROC, glcolortableparameterfv); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERIVPROC, glcolortableparameteriv); \
    HandleUnsupported(PFNGLCOPYCOLORTABLEPROC, glcopycolortable); \
    HandleUnsupported(PFNGLGETCOLORTABLEPROC, glgetcolortable); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVPROC, glgetcolortableparameterfv); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVPROC, glgetcolortableparameteriv); \
    HandleUnsupported(PFNGLCOLORSUBTABLEPROC, glcolorsubtable); \
    HandleUnsupported(PFNGLCOPYCOLORSUBTABLEPROC, glcopycolorsubtable); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER1DPROC, glconvolutionfilter1d); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER2DPROC, glconvolutionfilter2d); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFPROC, glconvolutionparameterf); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFVPROC, glconvolutionparameterfv); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIPROC, glconvolutionparameteri); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIVPROC, glconvolutionparameteriv); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER1DPROC, glcopyconvolutionfilter1d); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER2DPROC, glcopyconvolutionfilter2d); \
    HandleUnsupported(PFNGLGETCONVOLUTIONFILTERPROC, glgetconvolutionfilter); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERFVPROC, glgetconvolutionparameterfv); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERIVPROC, glgetconvolutionparameteriv); \
    HandleUnsupported(PFNGLGETSEPARABLEFILTERPROC, glgetseparablefilter); \
    HandleUnsupported(PFNGLSEPARABLEFILTER2DPROC, glseparablefilter2d); \
    HandleUnsupported(PFNGLGETHISTOGRAMPROC, glgethistogram); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERFVPROC, glgethistogramparameterfv); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERIVPROC, glgethistogramparameteriv); \
    HandleUnsupported(PFNGLGETMINMAXPROC, glgetminmax); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERFVPROC, glgetminmaxparameterfv); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERIVPROC, glgetminmaxparameteriv); \
    HandleUnsupported(PFNGLHISTOGRAMPROC, glhistogram); \
    HandleUnsupported(PFNGLMINMAXPROC, glminmax); \
    HandleUnsupported(PFNGLRESETHISTOGRAMPROC, glresethistogram); \
    HandleUnsupported(PFNGLRESETMINMAXPROC, glresetminmax); \
    HandleUnsupported(PFNGLCURRENTPALETTEMATRIXARBPROC, glcurrentpalettematrixarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUBVARBPROC, glmatrixindexubvarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUSVARBPROC, glmatrixindexusvarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUIVARBPROC, glmatrixindexuivarb); \
    HandleUnsupported(PFNGLMATRIXINDEXPOINTERARBPROC, glmatrixindexpointerarb); \
    HandleUnsupported(PFNGLCLIENTACTIVETEXTUREARBPROC, glclientactivetexturearb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DARBPROC, glmultitexcoord1darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DVARBPROC, glmultitexcoord1dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FARBPROC, glmultitexcoord1farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FVARBPROC, glmultitexcoord1fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IARBPROC, glmultitexcoord1iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IVARBPROC, glmultitexcoord1ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SARBPROC, glmultitexcoord1sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SVARBPROC, glmultitexcoord1svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DARBPROC, glmultitexcoord2darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DVARBPROC, glmultitexcoord2dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FARBPROC, glmultitexcoord2farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FVARBPROC, glmultitexcoord2fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IARBPROC, glmultitexcoord2iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IVARBPROC, glmultitexcoord2ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SARBPROC, glmultitexcoord2sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SVARBPROC, glmultitexcoord2svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DARBPROC, glmultitexcoord3darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DVARBPROC, glmultitexcoord3dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FARBPROC, glmultitexcoord3farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FVARBPROC, glmultitexcoord3fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IARBPROC, glmultitexcoord3iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IVARBPROC, glmultitexcoord3ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SARBPROC, glmultitexcoord3sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SVARBPROC, glmultitexcoord3svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DARBPROC, glmultitexcoord4darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DVARBPROC, glmultitexcoord4dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FARBPROC, glmultitexcoord4farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FVARBPROC, glmultitexcoord4fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IARBPROC, glmultitexcoord4iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IVARBPROC, glmultitexcoord4ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SARBPROC, glmultitexcoord4sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SVARBPROC, glmultitexcoord4svarb); \
    HandleUnsupported(PFNGLMAXSHADERCOMPILERTHREADSARBPROC, glmaxshadercompilerthreadsarb); \
    HandleUnsupported(PFNGLGETNMAPDVARBPROC, glgetnmapdvarb); \
    HandleUnsupported(PFNGLGETNMAPFVARBPROC, glgetnmapfvarb); \
    HandleUnsupported(PFNGLGETNMAPIVARBPROC, glgetnmapivarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPFVARBPROC, glgetnpixelmapfvarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPUIVARBPROC, glgetnpixelmapuivarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPUSVARBPROC, glgetnpixelmapusvarb); \
    HandleUnsupported(PFNGLGETNPOLYGONSTIPPLEARBPROC, glgetnpolygonstipplearb); \
    HandleUnsupported(PFNGLGETNCOLORTABLEARBPROC, glgetncolortablearb); \
    HandleUnsupported(PFNGLGETNCONVOLUTIONFILTERARBPROC, glgetnconvolutionfilterarb); \
    HandleUnsupported(PFNGLGETNSEPARABLEFILTERARBPROC, glgetnseparablefilterarb); \
    HandleUnsupported(PFNGLGETNHISTOGRAMARBPROC, glgetnhistogramarb); \
    HandleUnsupported(PFNGLGETNMINMAXARBPROC, glgetnminmaxarb); \
    HandleUnsupported(PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC, glframebuffersamplelocationsfvarb); \
    HandleUnsupported(PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC, glnamedframebuffersamplelocationsfvarb); \
    HandleUnsupported(PFNGLEVALUATEDEPTHVALUESARBPROC, glevaluatedepthvaluesarb); \
    HandleUnsupported(PFNGLDELETEOBJECTARBPROC, gldeleteobjectarb); \
    HandleUnsupported(PFNGLGETHANDLEARBPROC, glgethandlearb); \
    HandleUnsupported(PFNGLDETACHOBJECTARBPROC, gldetachobjectarb); \
    HandleUnsupported(PFNGLCREATESHADEROBJECTARBPROC, glcreateshaderobjectarb); \
    HandleUnsupported(PFNGLSHADERSOURCEARBPROC, glshadersourcearb); \
    HandleUnsupported(PFNGLCOMPILESHADERARBPROC, glcompileshaderarb); \
    HandleUnsupported(PFNGLCREATEPROGRAMOBJECTARBPROC, glcreateprogramobjectarb); \
    HandleUnsupported(PFNGLATTACHOBJECTARBPROC, glattachobjectarb); \
    HandleUnsupported(PFNGLLINKPROGRAMARBPROC, gllinkprogramarb); \
    HandleUnsupported(PFNGLUSEPROGRAMOBJECTARBPROC, gluseprogramobjectarb); \
    HandleUnsupported(PFNGLVALIDATEPROGRAMARBPROC, glvalidateprogramarb); \
    HandleUnsupported(PFNGLUNIFORM1FARBPROC, gluniform1farb); \
    HandleUnsupported(PFNGLUNIFORM2FARBPROC, gluniform2farb); \
    HandleUnsupported(PFNGLUNIFORM3FARBPROC, gluniform3farb); \
    HandleUnsupported(PFNGLUNIFORM4FARBPROC, gluniform4farb); \
    HandleUnsupported(PFNGLUNIFORM1IARBPROC, gluniform1iarb); \
    HandleUnsupported(PFNGLUNIFORM2IARBPROC, gluniform2iarb); \
    HandleUnsupported(PFNGLUNIFORM3IARBPROC, gluniform3iarb); \
    HandleUnsupported(PFNGLUNIFORM4IARBPROC, gluniform4iarb); \
    HandleUnsupported(PFNGLUNIFORM1FVARBPROC, gluniform1fvarb); \
    HandleUnsupported(PFNGLUNIFORM2FVARBPROC, gluniform2fvarb); \
    HandleUnsupported(PFNGLUNIFORM3FVARBPROC, gluniform3fvarb); \
    HandleUnsupported(PFNGLUNIFORM4FVARBPROC, gluniform4fvarb); \
    HandleUnsupported(PFNGLUNIFORM1IVARBPROC, gluniform1ivarb); \
    HandleUnsupported(PFNGLUNIFORM2IVARBPROC, gluniform2ivarb); \
    HandleUnsupported(PFNGLUNIFORM3IVARBPROC, gluniform3ivarb); \
    HandleUnsupported(PFNGLUNIFORM4IVARBPROC, gluniform4ivarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX2FVARBPROC, gluniformmatrix2fvarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX3FVARBPROC, gluniformmatrix3fvarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX4FVARBPROC, gluniformmatrix4fvarb); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERFVARBPROC, glgetobjectparameterfvarb); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERIVARBPROC, glgetobjectparameterivarb); \
    HandleUnsupported(PFNGLGETINFOLOGARBPROC, glgetinfologarb); \
    HandleUnsupported(PFNGLGETATTACHEDOBJECTSARBPROC, glgetattachedobjectsarb); \
    HandleUnsupported(PFNGLGETUNIFORMLOCATIONARBPROC, glgetuniformlocationarb); \
    HandleUnsupported(PFNGLGETACTIVEUNIFORMARBPROC, glgetactiveuniformarb); \
    HandleUnsupported(PFNGLGETUNIFORMFVARBPROC, glgetuniformfvarb); \
    HandleUnsupported(PFNGLGETUNIFORMIVARBPROC, glgetuniformivarb); \
    HandleUnsupported(PFNGLGETSHADERSOURCEARBPROC, glgetshadersourcearb); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXFARBPROC, glloadtransposematrixfarb); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXDARBPROC, glloadtransposematrixdarb); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXFARBPROC, glmulttransposematrixfarb); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXDARBPROC, glmulttransposematrixdarb); \
    HandleUnsupported(PFNGLWEIGHTBVARBPROC, glweightbvarb); \
    HandleUnsupported(PFNGLWEIGHTSVARBPROC, glweightsvarb); \
    HandleUnsupported(PFNGLWEIGHTIVARBPROC, glweightivarb); \
    HandleUnsupported(PFNGLWEIGHTFVARBPROC, glweightfvarb); \
    HandleUnsupported(PFNGLWEIGHTDVARBPROC, glweightdvarb); \
    HandleUnsupported(PFNGLWEIGHTUBVARBPROC, glweightubvarb); \
    HandleUnsupported(PFNGLWEIGHTUSVARBPROC, glweightusvarb); \
    HandleUnsupported(PFNGLWEIGHTUIVARBPROC, glweightuivarb); \
    HandleUnsupported(PFNGLWEIGHTPOINTERARBPROC, glweightpointerarb); \
    HandleUnsupported(PFNGLVERTEXBLENDARBPROC, glvertexblendarb); \
    HandleUnsupported(PFNGLVERTEXATTRIB4NUBARBPROC, glvertexattrib4nubarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBDVARBPROC, glgetvertexattribdvarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBFVARBPROC, glgetvertexattribfvarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBIVARBPROC, glgetvertexattribivarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBPOINTERVARBPROC, glgetvertexattribpointervarb); \
    HandleUnsupported(PFNGLBINDATTRIBLOCATIONARBPROC, glbindattriblocationarb); \
    HandleUnsupported(PFNGLGETACTIVEATTRIBARBPROC, glgetactiveattribarb); \
    HandleUnsupported(PFNGLGETATTRIBLOCATIONARBPROC, glgetattriblocationarb); \
    HandleUnsupported(PFNGLWINDOWPOS2DARBPROC, glwindowpos2darb); \
    HandleUnsupported(PFNGLWINDOWPOS2DVARBPROC, glwindowpos2dvarb); \
    HandleUnsupported(PFNGLWINDOWPOS2FARBPROC, glwindowpos2farb); \
    HandleUnsupported(PFNGLWINDOWPOS2FVARBPROC, glwindowpos2fvarb); \
    HandleUnsupported(PFNGLWINDOWPOS2IARBPROC, glwindowpos2iarb); \
    HandleUnsupported(PFNGLWINDOWPOS2IVARBPROC, glwindowpos2ivarb); \
    HandleUnsupported(PFNGLWINDOWPOS2SARBPROC, glwindowpos2sarb); \
    HandleUnsupported(PFNGLWINDOWPOS2SVARBPROC, glwindowpos2svarb); \
    HandleUnsupported(PFNGLWINDOWPOS3DARBPROC, glwindowpos3darb); \
    HandleUnsupported(PFNGLWINDOWPOS3DVARBPROC, glwindowpos3dvarb); \
    HandleUnsupported(PFNGLWINDOWPOS3FARBPROC, glwindowpos3farb); \
    HandleUnsupported(PFNGLWINDOWPOS3FVARBPROC, glwindowpos3fvarb); \
    HandleUnsupported(PFNGLWINDOWPOS3IARBPROC, glwindowpos3iarb); \
    HandleUnsupported(PFNGLWINDOWPOS3IVARBPROC, glwindowpos3ivarb); \
    HandleUnsupported(PFNGLWINDOWPOS3SARBPROC, glwindowpos3sarb); \
    HandleUnsupported(PFNGLWINDOWPOS3SVARBPROC, glwindowpos3svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1BOESPROC, glmultitexcoord1boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1BVOESPROC, glmultitexcoord1bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2BOESPROC, glmultitexcoord2boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2BVOESPROC, glmultitexcoord2bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3BOESPROC, glmultitexcoord3boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3BVOESPROC, glmultitexcoord3bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4BOESPROC, glmultitexcoord4boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4BVOESPROC, glmultitexcoord4bvoes); \
    HandleUnsupported(PFNGLTEXCOORD1BOESPROC, gltexcoord1boes); \
    HandleUnsupported(PFNGLTEXCOORD1BVOESPROC, gltexcoord1bvoes); \
    HandleUnsupported(PFNGLTEXCOORD2BOESPROC, gltexcoord2boes); \
    HandleUnsupported(PFNGLTEXCOORD2BVOESPROC, gltexcoord2bvoes); \
    HandleUnsupported(PFNGLTEXCOORD3BOESPROC, gltexcoord3boes); \
    HandleUnsupported(PFNGLTEXCOORD3BVOESPROC, gltexcoord3bvoes); \
    HandleUnsupported(PFNGLTEXCOORD4BOESPROC, gltexcoord4boes); \
    HandleUnsupported(PFNGLTEXCOORD4BVOESPROC, gltexcoord4bvoes); \
    HandleUnsupported(PFNGLVERTEX2BOESPROC, glvertex2boes); \
    HandleUnsupported(PFNGLVERTEX2BVOESPROC, glvertex2bvoes); \
    HandleUnsupported(PFNGLVERTEX3BOESPROC, glvertex3boes); \
    HandleUnsupported(PFNGLVERTEX3BVOESPROC, glvertex3bvoes); \
    HandleUnsupported(PFNGLVERTEX4BOESPROC, glvertex4boes); \
    HandleUnsupported(PFNGLVERTEX4BVOESPROC, glvertex4bvoes); \
    HandleUnsupported(PFNGLALPHAFUNCXOESPROC, glalphafuncxoes); \
    HandleUnsupported(PFNGLCLEARCOLORXOESPROC, glclearcolorxoes); \
    HandleUnsupported(PFNGLCLEARDEPTHXOESPROC, glcleardepthxoes); \
    HandleUnsupported(PFNGLCLIPPLANEXOESPROC, glclipplanexoes); \
    HandleUnsupported(PFNGLCOLOR4XOESPROC, glcolor4xoes); \
    HandleUnsupported(PFNGLDEPTHRANGEXOESPROC, gldepthrangexoes); \
    HandleUnsupported(PFNGLFOGXOESPROC, glfogxoes); \
    HandleUnsupported(PFNGLFOGXVOESPROC, glfogxvoes); \
    HandleUnsupported(PFNGLFRUSTUMXOESPROC, glfrustumxoes); \
    HandleUnsupported(PFNGLGETCLIPPLANEXOESPROC, glgetclipplanexoes); \
    HandleUnsupported(PFNGLGETFIXEDVOESPROC, glgetfixedvoes); \
    HandleUnsupported(PFNGLGETTEXENVXVOESPROC, glgettexenvxvoes); \
    HandleUnsupported(PFNGLGETTEXPARAMETERXVOESPROC, glgettexparameterxvoes); \
    HandleUnsupported(PFNGLLIGHTMODELXOESPROC, gllightmodelxoes); \
    HandleUnsupported(PFNGLLIGHTMODELXVOESPROC, gllightmodelxvoes); \
    HandleUnsupported(PFNGLLIGHTXOESPROC, gllightxoes); \
    HandleUnsupported(PFNGLLIGHTXVOESPROC, gllightxvoes); \
    HandleUnsupported(PFNGLLINEWIDTHXOESPROC, gllinewidthxoes); \
    HandleUnsupported(PFNGLLOADMATRIXXOESPROC, glloadmatrixxoes); \
    HandleUnsupported(PFNGLMATERIALXOESPROC, glmaterialxoes); \
    HandleUnsupported(PFNGLMATERIALXVOESPROC, glmaterialxvoes); \
    HandleUnsupported(PFNGLMULTMATRIXXOESPROC, glmultmatrixxoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4XOESPROC, glmultitexcoord4xoes); \
    HandleUnsupported(PFNGLNORMAL3XOESPROC, glnormal3xoes); \
    HandleUnsupported(PFNGLORTHOXOESPROC, glorthoxoes); \
    HandleUnsupported(PFNGLPOINTPARAMETERXVOESPROC, glpointparameterxvoes); \
    HandleUnsupported(PFNGLPOINTSIZEXOESPROC, glpointsizexoes); \
    HandleUnsupported(PFNGLPOLYGONOFFSETXOESPROC, glpolygonoffsetxoes); \
    HandleUnsupported(PFNGLROTATEXOESPROC, glrotatexoes); \
    HandleUnsupported(PFNGLSCALEXOESPROC, glscalexoes); \
    HandleUnsupported(PFNGLTEXENVXOESPROC, gltexenvxoes); \
    HandleUnsupported(PFNGLTEXENVXVOESPROC, gltexenvxvoes); \
    HandleUnsupported(PFNGLTEXPARAMETERXOESPROC, gltexparameterxoes); \
    HandleUnsupported(PFNGLTEXPARAMETERXVOESPROC, gltexparameterxvoes); \
    HandleUnsupported(PFNGLTRANSLATEXOESPROC, gltranslatexoes); \
    HandleUnsupported(PFNGLACCUMXOESPROC, glaccumxoes); \
    HandleUnsupported(PFNGLBITMAPXOESPROC, glbitmapxoes); \
    HandleUnsupported(PFNGLBLENDCOLORXOESPROC, glblendcolorxoes); \
    HandleUnsupported(PFNGLCLEARACCUMXOESPROC, glclearaccumxoes); \
    HandleUnsupported(PFNGLCOLOR3XOESPROC, glcolor3xoes); \
    HandleUnsupported(PFNGLCOLOR3XVOESPROC, glcolor3xvoes); \
    HandleUnsupported(PFNGLCOLOR4XVOESPROC, glcolor4xvoes); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERXOESPROC, glconvolutionparameterxoes); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERXVOESPROC, glconvolutionparameterxvoes); \
    HandleUnsupported(PFNGLEVALCOORD1XOESPROC, glevalcoord1xoes); \
    HandleUnsupported(PFNGLEVALCOORD1XVOESPROC, glevalcoord1xvoes); \
    HandleUnsupported(PFNGLEVALCOORD2XOESPROC, glevalcoord2xoes); \
    HandleUnsupported(PFNGLEVALCOORD2XVOESPROC, glevalcoord2xvoes); \
    HandleUnsupported(PFNGLFEEDBACKBUFFERXOESPROC, glfeedbackbufferxoes); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERXVOESPROC, glgetconvolutionparameterxvoes); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERXVOESPROC, glgethistogramparameterxvoes); \
    HandleUnsupported(PFNGLGETLIGHTXOESPROC, glgetlightxoes); \
    HandleUnsupported(PFNGLGETMAPXVOESPROC, glgetmapxvoes); \
    HandleUnsupported(PFNGLGETMATERIALXOESPROC, glgetmaterialxoes); \
    HandleUnsupported(PFNGLGETPIXELMAPXVPROC, glgetpixelmapxv); \
    HandleUnsupported(PFNGLGETTEXGENXVOESPROC, glgettexgenxvoes); \
    HandleUnsupported(PFNGLGETTEXLEVELPARAMETERXVOESPROC, glgettexlevelparameterxvoes); \
    HandleUnsupported(PFNGLINDEXXOESPROC, glindexxoes); \
    HandleUnsupported(PFNGLINDEXXVOESPROC, glindexxvoes); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXXOESPROC, glloadtransposematrixxoes); \
    HandleUnsupported(PFNGLMAP1XOESPROC, glmap1xoes); \
    HandleUnsupported(PFNGLMAP2XOESPROC, glmap2xoes); \
    HandleUnsupported(PFNGLMAPGRID1XOESPROC, glmapgrid1xoes); \
    HandleUnsupported(PFNGLMAPGRID2XOESPROC, glmapgrid2xoes); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXXOESPROC, glmulttransposematrixxoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1XOESPROC, glmultitexcoord1xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1XVOESPROC, glmultitexcoord1xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2XOESPROC, glmultitexcoord2xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2XVOESPROC, glmultitexcoord2xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3XOESPROC, glmultitexcoord3xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3XVOESPROC, glmultitexcoord3xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4XVOESPROC, glmultitexcoord4xvoes); \
    HandleUnsupported(PFNGLNORMAL3XVOESPROC, glnormal3xvoes); \
    HandleUnsupported(PFNGLPASSTHROUGHXOESPROC, glpassthroughxoes); \
    HandleUnsupported(PFNGLPIXELMAPXPROC, glpixelmapx); \
    HandleUnsupported(PFNGLPIXELSTOREXPROC, glpixelstorex); \
    HandleUnsupported(PFNGLPIXELTRANSFERXOESPROC, glpixeltransferxoes); \
    HandleUnsupported(PFNGLPIXELZOOMXOESPROC, glpixelzoomxoes); \
    HandleUnsupported(PFNGLPRIORITIZETEXTURESXOESPROC, glprioritizetexturesxoes); \
    HandleUnsupported(PFNGLRASTERPOS2XOESPROC, glrasterpos2xoes); \
    HandleUnsupported(PFNGLRASTERPOS2XVOESPROC, glrasterpos2xvoes); \
    HandleUnsupported(PFNGLRASTERPOS3XOESPROC, glrasterpos3xoes); \
    HandleUnsupported(PFNGLRASTERPOS3XVOESPROC, glrasterpos3xvoes); \
    HandleUnsupported(PFNGLRASTERPOS4XOESPROC, glrasterpos4xoes); \
    HandleUnsupported(PFNGLRASTERPOS4XVOESPROC, glrasterpos4xvoes); \
    HandleUnsupported(PFNGLRECTXOESPROC, glrectxoes); \
    HandleUnsupported(PFNGLRECTXVOESPROC, glrectxvoes); \
    HandleUnsupported(PFNGLTEXCOORD1XOESPROC, gltexcoord1xoes); \
    HandleUnsupported(PFNGLTEXCOORD1XVOESPROC, gltexcoord1xvoes); \
    HandleUnsupported(PFNGLTEXCOORD2XOESPROC, gltexcoord2xoes); \
    HandleUnsupported(PFNGLTEXCOORD2XVOESPROC, gltexcoord2xvoes); \
    HandleUnsupported(PFNGLTEXCOORD3XOESPROC, gltexcoord3xoes); \
    HandleUnsupported(PFNGLTEXCOORD3XVOESPROC, gltexcoord3xvoes); \
    HandleUnsupported(PFNGLTEXCOORD4XOESPROC, gltexcoord4xoes); \
    HandleUnsupported(PFNGLTEXCOORD4XVOESPROC, gltexcoord4xvoes); \
    HandleUnsupported(PFNGLTEXGENXOESPROC, gltexgenxoes); \
    HandleUnsupported(PFNGLTEXGENXVOESPROC, gltexgenxvoes); \
    HandleUnsupported(PFNGLVERTEX2XOESPROC, glvertex2xoes); \
    HandleUnsupported(PFNGLVERTEX2XVOESPROC, glvertex2xvoes); \
    HandleUnsupported(PFNGLVERTEX3XOESPROC, glvertex3xoes); \
    HandleUnsupported(PFNGLVERTEX3XVOESPROC, glvertex3xvoes); \
    HandleUnsupported(PFNGLVERTEX4XOESPROC, glvertex4xoes); \
    HandleUnsupported(PFNGLVERTEX4XVOESPROC, glvertex4xvoes); \
    HandleUnsupported(PFNGLQUERYMATRIXXOESPROC, glquerymatrixxoes); \
    HandleUnsupported(PFNGLCLEARDEPTHFOESPROC, glcleardepthfoes); \
    HandleUnsupported(PFNGLCLIPPLANEFOESPROC, glclipplanefoes); \
    HandleUnsupported(PFNGLDEPTHRANGEFOESPROC, gldepthrangefoes); \
    HandleUnsupported(PFNGLFRUSTUMFOESPROC, glfrustumfoes); \
    HandleUnsupported(PFNGLGETCLIPPLANEFOESPROC, glgetclipplanefoes); \
    HandleUnsupported(PFNGLORTHOFOESPROC, glorthofoes); \
    HandleUnsupported(PFNGLTBUFFERMASK3DFXPROC, gltbuffermask3dfx); \
    HandleUnsupported(PFNGLDEBUGMESSAGEENABLEAMDPROC, gldebugmessageenableamd); \
    HandleUnsupported(PFNGLDEBUGMESSAGEINSERTAMDPROC, gldebugmessageinsertamd); \
    HandleUnsupported(PFNGLDEBUGMESSAGECALLBACKAMDPROC, gldebugmessagecallbackamd); \
    HandleUnsupported(PFNGLGETDEBUGMESSAGELOGAMDPROC, glgetdebugmessagelogamd); \
    HandleUnsupported(PFNGLBLENDFUNCINDEXEDAMDPROC, glblendfuncindexedamd); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC, glblendfuncseparateindexedamd); \
    HandleUnsupported(PFNGLBLENDEQUATIONINDEXEDAMDPROC, glblendequationindexedamd); \
    HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC, glblendequationseparateindexedamd); \
    HandleUnsupported(PFNGLUNIFORM1I64NVPROC, gluniform1i64nv); \
    HandleUnsupported(PFNGLUNIFORM2I64NVPROC, gluniform2i64nv); \
    HandleUnsupported(PFNGLUNIFORM3I64NVPROC, gluniform3i64nv); \
    HandleUnsupported(PFNGLUNIFORM4I64NVPROC, gluniform4i64nv); \
    HandleUnsupported(PFNGLUNIFORM1I64VNVPROC, gluniform1i64vnv); \
    HandleUnsupported(PFNGLUNIFORM2I64VNVPROC, gluniform2i64vnv); \
    HandleUnsupported(PFNGLUNIFORM3I64VNVPROC, gluniform3i64vnv); \
    HandleUnsupported(PFNGLUNIFORM4I64VNVPROC, gluniform4i64vnv); \
    HandleUnsupported(PFNGLUNIFORM1UI64NVPROC, gluniform1ui64nv); \
    HandleUnsupported(PFNGLUNIFORM2UI64NVPROC, gluniform2ui64nv); \
    HandleUnsupported(PFNGLUNIFORM3UI64NVPROC, gluniform3ui64nv); \
    HandleUnsupported(PFNGLUNIFORM4UI64NVPROC, gluniform4ui64nv); \
    HandleUnsupported(PFNGLUNIFORM1UI64VNVPROC, gluniform1ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM2UI64VNVPROC, gluniform2ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM3UI64VNVPROC, gluniform3ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM4UI64VNVPROC, gluniform4ui64vnv); \
    HandleUnsupported(PFNGLGETUNIFORMI64VNVPROC, glgetuniformi64vnv); \
    HandleUnsupported(PFNGLGETUNIFORMUI64VNVPROC, glgetuniformui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64NVPROC, glprogramuniform1i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64NVPROC, glprogramuniform2i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64NVPROC, glprogramuniform3i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64NVPROC, glprogramuniform4i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64VNVPROC, glprogramuniform1i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64VNVPROC, glprogramuniform2i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64VNVPROC, glprogramuniform3i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64VNVPROC, glprogramuniform4i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64NVPROC, glprogramuniform1ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64NVPROC, glprogramuniform2ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64NVPROC, glprogramuniform3ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64NVPROC, glprogramuniform4ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64VNVPROC, glprogramuniform1ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64VNVPROC, glprogramuniform2ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64VNVPROC, glprogramuniform3ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64VNVPROC, glprogramuniform4ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBPARAMETERIAMDPROC, glvertexattribparameteriamd); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC, glmultidrawarraysindirectamd); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC, glmultidrawelementsindirectamd); \
    HandleUnsupported(PFNGLGENNAMESAMDPROC, glgennamesamd); \
    HandleUnsupported(PFNGLDELETENAMESAMDPROC, gldeletenamesamd); \
    HandleUnsupported(PFNGLISNAMEAMDPROC, glisnameamd); \
    HandleUnsupported(PFNGLQUERYOBJECTPARAMETERUIAMDPROC, glqueryobjectparameteruiamd); \
    HandleUnsupported(PFNGLGETPERFMONITORGROUPSAMDPROC, glgetperfmonitorgroupsamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERSAMDPROC, glgetperfmonitorcountersamd); \
    HandleUnsupported(PFNGLGETPERFMONITORGROUPSTRINGAMDPROC, glgetperfmonitorgroupstringamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC, glgetperfmonitorcounterstringamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERINFOAMDPROC, glgetperfmonitorcounterinfoamd); \
    HandleUnsupported(PFNGLGENPERFMONITORSAMDPROC, glgenperfmonitorsamd); \
    HandleUnsupported(PFNGLDELETEPERFMONITORSAMDPROC, gldeleteperfmonitorsamd); \
    HandleUnsupported(PFNGLSELECTPERFMONITORCOUNTERSAMDPROC, glselectperfmonitorcountersamd); \
    HandleUnsupported(PFNGLBEGINPERFMONITORAMDPROC, glbeginperfmonitoramd); \
    HandleUnsupported(PFNGLENDPERFMONITORAMDPROC, glendperfmonitoramd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERDATAAMDPROC, glgetperfmonitorcounterdataamd); \
    HandleUnsupported(PFNGLSETMULTISAMPLEFVAMDPROC, glsetmultisamplefvamd); \
    HandleUnsupported(PFNGLTEXSTORAGESPARSEAMDPROC, gltexstoragesparseamd); \
    HandleUnsupported(PFNGLTEXTURESTORAGESPARSEAMDPROC, gltexturestoragesparseamd); \
    HandleUnsupported(PFNGLSTENCILOPVALUEAMDPROC, glstencilopvalueamd); \
    HandleUnsupported(PFNGLTESSELLATIONFACTORAMDPROC, gltessellationfactoramd); \
    HandleUnsupported(PFNGLTESSELLATIONMODEAMDPROC, gltessellationmodeamd); \
    HandleUnsupported(PFNGLELEMENTPOINTERAPPLEPROC, glelementpointerapple); \
    HandleUnsupported(PFNGLDRAWELEMENTARRAYAPPLEPROC, gldrawelementarrayapple); \
    HandleUnsupported(PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC, gldrawrangeelementarrayapple); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC, glmultidrawelementarrayapple); \
    HandleUnsupported(PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC, glmultidrawrangeelementarrayapple); \
    HandleUnsupported(PFNGLGENFENCESAPPLEPROC, glgenfencesapple); \
    HandleUnsupported(PFNGLDELETEFENCESAPPLEPROC, gldeletefencesapple); \
    HandleUnsupported(PFNGLSETFENCEAPPLEPROC, glsetfenceapple); \
    HandleUnsupported(PFNGLISFENCEAPPLEPROC, glisfenceapple); \
    HandleUnsupported(PFNGLTESTFENCEAPPLEPROC, gltestfenceapple); \
    HandleUnsupported(PFNGLFINISHFENCEAPPLEPROC, glfinishfenceapple); \
    HandleUnsupported(PFNGLTESTOBJECTAPPLEPROC, gltestobjectapple); \
    HandleUnsupported(PFNGLFINISHOBJECTAPPLEPROC, glfinishobjectapple); \
    HandleUnsupported(PFNGLBUFFERPARAMETERIAPPLEPROC, glbufferparameteriapple); \
    HandleUnsupported(PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC, glflushmappedbufferrangeapple); \
    HandleUnsupported(PFNGLOBJECTPURGEABLEAPPLEPROC, globjectpurgeableapple); \
    HandleUnsupported(PFNGLOBJECTUNPURGEABLEAPPLEPROC, globjectunpurgeableapple); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERIVAPPLEPROC, glgetobjectparameterivapple); \
    HandleUnsupported(PFNGLTEXTURERANGEAPPLEPROC, gltexturerangeapple); \
    HandleUnsupported(PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC, glgettexparameterpointervapple); \
    HandleUnsupported(PFNGLBINDVERTEXARRAYAPPLEPROC, glbindvertexarrayapple); \
    HandleUnsupported(PFNGLDELETEVERTEXARRAYSAPPLEPROC, gldeletevertexarraysapple); \
    HandleUnsupported(PFNGLGENVERTEXARRAYSAPPLEPROC, glgenvertexarraysapple); \
    HandleUnsupported(PFNGLISVERTEXARRAYAPPLEPROC, glisvertexarrayapple); \
    HandleUnsupported(PFNGLVERTEXARRAYRANGEAPPLEPROC, glvertexarrayrangeapple); \
    HandleUnsupported(PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC, glflushvertexarrayrangeapple); \
    HandleUnsupported(PFNGLVERTEXARRAYPARAMETERIAPPLEPROC, glvertexarrayparameteriapple); \
    HandleUnsupported(PFNGLENABLEVERTEXATTRIBAPPLEPROC, glenablevertexattribapple); \
    HandleUnsupported(PFNGLDISABLEVERTEXATTRIBAPPLEPROC, gldisablevertexattribapple); \
    HandleUnsupported(PFNGLISVERTEXATTRIBENABLEDAPPLEPROC, glisvertexattribenabledapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB1DAPPLEPROC, glmapvertexattrib1dapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB1FAPPLEPROC, glmapvertexattrib1fapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB2DAPPLEPROC, glmapvertexattrib2dapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB2FAPPLEPROC, glmapvertexattrib2fapple); \
    HandleUnsupported(PFNGLDRAWBUFFERSATIPROC, gldrawbuffersati); \
    HandleUnsupported(PFNGLELEMENTPOINTERATIPROC, glelementpointerati); \
    HandleUnsupported(PFNGLDRAWELEMENTARRAYATIPROC, gldrawelementarrayati); \
    HandleUnsupported(PFNGLDRAWRANGEELEMENTARRAYATIPROC, gldrawrangeelementarrayati); \
    HandleUnsupported(PFNGLTEXBUMPPARAMETERIVATIPROC, gltexbumpparameterivati); \
    HandleUnsupported(PFNGLTEXBUMPPARAMETERFVATIPROC, gltexbumpparameterfvati); \
    HandleUnsupported(PFNGLGETTEXBUMPPARAMETERIVATIPROC, glgettexbumpparameterivati); \
    HandleUnsupported(PFNGLGETTEXBUMPPARAMETERFVATIPROC, glgettexbumpparameterfvati); \
    HandleUnsupported(PFNGLGENFRAGMENTSHADERSATIPROC, glgenfragmentshadersati); \
    HandleUnsupported(PFNGLBINDFRAGMENTSHADERATIPROC, glbindfragmentshaderati); \
    HandleUnsupported(PFNGLDELETEFRAGMENTSHADERATIPROC, gldeletefragmentshaderati); \
    HandleUnsupported(PFNGLBEGINFRAGMENTSHADERATIPROC, glbeginfragmentshaderati); \
    HandleUnsupported(PFNGLENDFRAGMENTSHADERATIPROC, glendfragmentshaderati); \
    HandleUnsupported(PFNGLPASSTEXCOORDATIPROC, glpasstexcoordati); \
    HandleUnsupported(PFNGLSAMPLEMAPATIPROC, glsamplemapati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP1ATIPROC, glcolorfragmentop1ati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP2ATIPROC, glcolorfragmentop2ati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP3ATIPROC, glcolorfragmentop3ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP1ATIPROC, glalphafragmentop1ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP2ATIPROC, glalphafragmentop2ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP3ATIPROC, glalphafragmentop3ati); \
    HandleUnsupported(PFNGLSETFRAGMENTSHADERCONSTANTATIPROC, glsetfragmentshaderconstantati); \
    HandleUnsupported(PFNGLMAPOBJECTBUFFERATIPROC, glmapobjectbufferati); \
    HandleUnsupported(PFNGLUNMAPOBJECTBUFFERATIPROC, glunmapobjectbufferati); \
    HandleUnsupported(PFNGLPNTRIANGLESIATIPROC, glpntrianglesiati); \
    HandleUnsupported(PFNGLPNTRIANGLESFATIPROC, glpntrianglesfati); \
    HandleUnsupported(PFNGLSTENCILOPSEPARATEATIPROC, glstencilopseparateati); \
    HandleUnsupported(PFNGLSTENCILFUNCSEPARATEATIPROC, glstencilfuncseparateati); \
    HandleUnsupported(PFNGLNEWOBJECTBUFFERATIPROC, glnewobjectbufferati); \
    HandleUnsupported(PFNGLISOBJECTBUFFERATIPROC, glisobjectbufferati); \
    HandleUnsupported(PFNGLUPDATEOBJECTBUFFERATIPROC, glupdateobjectbufferati); \
    HandleUnsupported(PFNGLGETOBJECTBUFFERFVATIPROC, glgetobjectbufferfvati); \
    HandleUnsupported(PFNGLGETOBJECTBUFFERIVATIPROC, glgetobjectbufferivati); \
    HandleUnsupported(PFNGLFREEOBJECTBUFFERATIPROC, glfreeobjectbufferati); \
    HandleUnsupported(PFNGLARRAYOBJECTATIPROC, glarrayobjectati); \
    HandleUnsupported(PFNGLGETARRAYOBJECTFVATIPROC, glgetarrayobjectfvati); \
    HandleUnsupported(PFNGLGETARRAYOBJECTIVATIPROC, glgetarrayobjectivati); \
    HandleUnsupported(PFNGLVARIANTARRAYOBJECTATIPROC, glvariantarrayobjectati); \
    HandleUnsupported(PFNGLGETVARIANTARRAYOBJECTFVATIPROC, glgetvariantarrayobjectfvati); \
    HandleUnsupported(PFNGLGETVARIANTARRAYOBJECTIVATIPROC, glgetvariantarrayobjectivati); \
    HandleUnsupported(PFNGLVERTEXATTRIBARRAYOBJECTATIPROC, glvertexattribarrayobjectati); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC, glgetvertexattribarrayobjectfvati); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC, glgetvertexattribarrayobjectivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1SATIPROC, glvertexstream1sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1SVATIPROC, glvertexstream1svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1IATIPROC, glvertexstream1iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1IVATIPROC, glvertexstream1ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1FATIPROC, glvertexstream1fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1FVATIPROC, glvertexstream1fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1DATIPROC, glvertexstream1dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1DVATIPROC, glvertexstream1dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2SATIPROC, glvertexstream2sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2SVATIPROC, glvertexstream2svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2IATIPROC, glvertexstream2iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2IVATIPROC, glvertexstream2ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2FATIPROC, glvertexstream2fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2FVATIPROC, glvertexstream2fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2DATIPROC, glvertexstream2dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2DVATIPROC, glvertexstream2dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3SATIPROC, glvertexstream3sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3SVATIPROC, glvertexstream3svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3IATIPROC, glvertexstream3iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3IVATIPROC, glvertexstream3ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3FATIPROC, glvertexstream3fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3FVATIPROC, glvertexstream3fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3DATIPROC, glvertexstream3dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3DVATIPROC, glvertexstream3dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4SATIPROC, glvertexstream4sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4SVATIPROC, glvertexstream4svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4IATIPROC, glvertexstream4iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4IVATIPROC, glvertexstream4ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4FATIPROC, glvertexstream4fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4FVATIPROC, glvertexstream4fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4DATIPROC, glvertexstream4dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4DVATIPROC, glvertexstream4dvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3BATIPROC, glnormalstream3bati); \
    HandleUnsupported(PFNGLNORMALSTREAM3BVATIPROC, glnormalstream3bvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3SATIPROC, glnormalstream3sati); \
    HandleUnsupported(PFNGLNORMALSTREAM3SVATIPROC, glnormalstream3svati); \
    HandleUnsupported(PFNGLNORMALSTREAM3IATIPROC, glnormalstream3iati); \
    HandleUnsupported(PFNGLNORMALSTREAM3IVATIPROC, glnormalstream3ivati); \
    HandleUnsupported(PFNGLNORMALSTREAM3FATIPROC, glnormalstream3fati); \
    HandleUnsupported(PFNGLNORMALSTREAM3FVATIPROC, glnormalstream3fvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3DATIPROC, glnormalstream3dati); \
    HandleUnsupported(PFNGLNORMALSTREAM3DVATIPROC, glnormalstream3dvati); \
    HandleUnsupported(PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC, glclientactivevertexstreamati); \
    HandleUnsupported(PFNGLVERTEXBLENDENVIATIPROC, glvertexblendenviati); \
    HandleUnsupported(PFNGLVERTEXBLENDENVFATIPROC, glvertexblendenvfati); \
    HandleUnsupported(PFNGLUNIFORMBUFFEREXTPROC, gluniformbufferext); \
    HandleUnsupported(PFNGLGETUNIFORMBUFFERSIZEEXTPROC, glgetuniformbuffersizeext); \
    HandleUnsupported(PFNGLGETUNIFORMOFFSETEXTPROC, glgetuniformoffsetext); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEEXTPROC, glblendfuncseparateext); \
    HandleUnsupported(PFNGLCOLORSUBTABLEEXTPROC, glcolorsubtableext); \
    HandleUnsupported(PFNGLCOPYCOLORSUBTABLEEXTPROC, glcopycolorsubtableext); \
    HandleUnsupported(PFNGLLOCKARRAYSEXTPROC, gllockarraysext); \
    HandleUnsupported(PFNGLUNLOCKARRAYSEXTPROC, glunlockarraysext); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER1DEXTPROC, glconvolutionfilter1dext); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER2DEXTPROC, glconvolutionfilter2dext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFEXTPROC, glconvolutionparameterfext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFVEXTPROC, glconvolutionparameterfvext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIEXTPROC, glconvolutionparameteriext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIVEXTPROC, glconvolutionparameterivext); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC, glcopyconvolutionfilter1dext); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC, glcopyconvolutionfilter2dext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONFILTEREXTPROC, glgetconvolutionfilterext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC, glgetconvolutionparameterfvext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC, glgetconvolutionparameterivext); \
    HandleUnsupported(PFNGLGETSEPARABLEFILTEREXTPROC, glgetseparablefilterext); \
    HandleUnsupported(PFNGLSEPARABLEFILTER2DEXTPROC, glseparablefilter2dext); \
    HandleUnsupported(PFNGLTANGENT3BEXTPROC, gltangent3bext); \
    HandleUnsupported(PFNGLTANGENT3BVEXTPROC, gltangent3bvext); \
    HandleUnsupported(PFNGLTANGENT3DEXTPROC, gltangent3dext); \
    HandleUnsupported(PFNGLTANGENT3DVEXTPROC, gltangent3dvext); \
    HandleUnsupported(PFNGLTANGENT3FEXTPROC, gltangent3fext); \
    HandleUnsupported(PFNGLTANGENT3FVEXTPROC, gltangent3fvext); \
    HandleUnsupported(PFNGLTANGENT3IEXTPROC, gltangent3iext); \
    HandleUnsupported(PFNGLTANGENT3IVEXTPROC, gltangent3ivext); \
    HandleUnsupported(PFNGLTANGENT3SEXTPROC, gltangent3sext); \
    HandleUnsupported(PFNGLTANGENT3SVEXTPROC, gltangent3svext); \
    HandleUnsupported(PFNGLBINORMAL3BEXTPROC, glbinormal3bext); \
    HandleUnsupported(PFNGLBINORMAL3BVEXTPROC, glbinormal3bvext); \
    HandleUnsupported(PFNGLBINORMAL3DEXTPROC, glbinormal3dext); \
    HandleUnsupported(PFNGLBINORMAL3DVEXTPROC, glbinormal3dvext); \
    HandleUnsupported(PFNGLBINORMAL3FEXTPROC, glbinormal3fext); \
    HandleUnsupported(PFNGLBINORMAL3FVEXTPROC, glbinormal3fvext); \
    HandleUnsupported(PFNGLBINORMAL3IEXTPROC, glbinormal3iext); \
    HandleUnsupported(PFNGLBINORMAL3IVEXTPROC, glbinormal3ivext); \
    HandleUnsupported(PFNGLBINORMAL3SEXTPROC, glbinormal3sext); \
    HandleUnsupported(PFNGLBINORMAL3SVEXTPROC, glbinormal3svext); \
    HandleUnsupported(PFNGLTANGENTPOINTEREXTPROC, gltangentpointerext); \
    HandleUnsupported(PFNGLBINORMALPOINTEREXTPROC, glbinormalpointerext); \
    HandleUnsupported(PFNGLCOPYTEXIMAGE1DEXTPROC, glcopyteximage1dext); \
    HandleUnsupported(PFNGLCOPYTEXIMAGE2DEXTPROC, glcopyteximage2dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE1DEXTPROC, glcopytexsubimage1dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE2DEXTPROC, glcopytexsubimage2dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE3DEXTPROC, glcopytexsubimage3dext); \
    HandleUnsupported(PFNGLCULLPARAMETERDVEXTPROC, glcullparameterdvext); \
    HandleUnsupported(PFNGLCULLPARAMETERFVEXTPROC, glcullparameterfvext); \
    HandleUnsupported(PFNGLMATRIXLOADFEXTPROC, glmatrixloadfext); \
    HandleUnsupported(PFNGLMATRIXLOADDEXTPROC, glmatrixloaddext); \
    HandleUnsupported(PFNGLMATRIXMULTFEXTPROC, glmatrixmultfext); \
    HandleUnsupported(PFNGLMATRIXMULTDEXTPROC, glmatrixmultdext); \
    HandleUnsupported(PFNGLMATRIXLOADIDENTITYEXTPROC, glmatrixloadidentityext); \
    HandleUnsupported(PFNGLMATRIXROTATEFEXTPROC, glmatrixrotatefext); \
    HandleUnsupported(PFNGLMATRIXROTATEDEXTPROC, glmatrixrotatedext); \
    HandleUnsupported(PFNGLMATRIXSCALEFEXTPROC, glmatrixscalefext); \
    HandleUnsupported(PFNGLMATRIXSCALEDEXTPROC, glmatrixscaledext); \
    HandleUnsupported(PFNGLMATRIXTRANSLATEFEXTPROC, glmatrixtranslatefext); \
    HandleUnsupported(PFNGLMATRIXTRANSLATEDEXTPROC, glmatrixtranslatedext); \
    HandleUnsupported(PFNGLMATRIXFRUSTUMEXTPROC, glmatrixfrustumext); \
    HandleUnsupported(PFNGLMATRIXORTHOEXTPROC, glmatrixorthoext); \
    HandleUnsupported(PFNGLMATRIXPOPEXTPROC, glmatrixpopext); \
    HandleUnsupported(PFNGLMATRIXPUSHEXTPROC, glmatrixpushext); \
    HandleUnsupported(PFNGLCLIENTATTRIBDEFAULTEXTPROC, glclientattribdefaultext); \
    HandleUnsupported(PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC, glpushclientattribdefaultext); \
    HandleUnsupported(PFNGLMULTITEXCOORDPOINTEREXTPROC, glmultitexcoordpointerext); \
    HandleUnsupported(PFNGLMULTITEXENVFEXTPROC, glmultitexenvfext); \
    HandleUnsupported(PFNGLMULTITEXENVFVEXTPROC, glmultitexenvfvext); \
    HandleUnsupported(PFNGLMULTITEXENVIEXTPROC, glmultitexenviext); \
    HandleUnsupported(PFNGLMULTITEXENVIVEXTPROC, glmultitexenvivext); \
    HandleUnsupported(PFNGLMULTITEXGENDEXTPROC, glmultitexgendext); \
    HandleUnsupported(PFNGLMULTITEXGENDVEXTPROC, glmultitexgendvext); \
    HandleUnsupported(PFNGLMULTITEXGENFEXTPROC, glmultitexgenfext); \
    HandleUnsupported(PFNGLMULTITEXGENFVEXTPROC, glmultitexgenfvext); \
    HandleUnsupported(PFNGLMULTITEXGENIEXTPROC, glmultitexgeniext); \
    HandleUnsupported(PFNGLMULTITEXGENIVEXTPROC, glmultitexgenivext); \
    HandleUnsupported(PFNGLGETMULTITEXENVFVEXTPROC, glgetmultitexenvfvext); \
    HandleUnsupported(PFNGLGETMULTITEXENVIVEXTPROC, glgetmultitexenvivext); \
    HandleUnsupported(PFNGLGETMULTITEXGENDVEXTPROC, glgetmultitexgendvext); \
    HandleUnsupported(PFNGLGETMULTITEXGENFVEXTPROC, glgetmultitexgenfvext); \
    HandleUnsupported(PFNGLGETMULTITEXGENIVEXTPROC, glgetmultitexgenivext); \
    HandleUnsupported(PFNGLENABLECLIENTSTATEINDEXEDEXTPROC, glenableclientstateindexedext); \
    HandleUnsupported(PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC, gldisableclientstateindexedext); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSEFEXTPROC, glmatrixloadtransposefext); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSEDEXTPROC, glmatrixloadtransposedext); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSEFEXTPROC, glmatrixmulttransposefext); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSEDEXTPROC, glmatrixmulttransposedext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC, glnamedprogramlocalparameters4fvext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC, glnamedprogramlocalparameteri4iext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC, glnamedprogramlocalparameteri4ivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC, glnamedprogramlocalparametersi4ivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC, glnamedprogramlocalparameteri4uiext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC, glnamedprogramlocalparameteri4uivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC, glnamedprogramlocalparametersi4uivext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC, glgetnamedprogramlocalparameteriivext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC, glgetnamedprogramlocalparameteriuivext); \
    HandleUnsupported(PFNGLENABLECLIENTSTATEIEXTPROC, glenableclientstateiext); \
    HandleUnsupported(PFNGLDISABLECLIENTSTATEIEXTPROC, gldisableclientstateiext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMSTRINGEXTPROC, glnamedprogramstringext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC, glnamedprogramlocalparameter4dext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC, glnamedprogramlocalparameter4dvext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC, glnamedprogramlocalparameter4fext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC, glnamedprogramlocalparameter4fvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC, glgetnamedprogramlocalparameterdvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC, glgetnamedprogramlocalparameterfvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMSTRINGEXTPROC, glgetnamedprogramstringext); \
    HandleUnsupported(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC, glnamedrenderbufferstoragemultisamplecoverageext); \
    HandleUnsupported(PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC, glnamedframebuffertexturefaceext); \
    HandleUnsupported(PFNGLTEXTURERENDERBUFFEREXTPROC, gltexturerenderbufferext); \
    HandleUnsupported(PFNGLMULTITEXRENDERBUFFEREXTPROC, glmultitexrenderbufferext); \
    HandleUnsupported(PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC, glvertexarrayvertexoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYCOLOROFFSETEXTPROC, glvertexarraycoloroffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC, glvertexarrayedgeflagoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYINDEXOFFSETEXTPROC, glvertexarrayindexoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYNORMALOFFSETEXTPROC, glvertexarraynormaloffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC, glvertexarraytexcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC, glvertexarraymultitexcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC, glvertexarrayfogcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC, glvertexarraysecondarycoloroffsetext); \
    HandleUnsupported(PFNGLENABLEVERTEXARRAYEXTPROC, glenablevertexarrayext); \
    HandleUnsupported(PFNGLDISABLEVERTEXARRAYEXTPROC, gldisablevertexarrayext); \
    HandleUnsupported(PFNGLTEXTUREPAGECOMMITMENTEXTPROC, gltexturepagecommitmentext); \
    HandleUnsupported(PFNGLFOGCOORDFEXTPROC, glfogcoordfext); \
    HandleUnsupported(PFNGLFOGCOORDFVEXTPROC, glfogcoordfvext); \
    HandleUnsupported(PFNGLFOGCOORDDEXTPROC, glfogcoorddext); \
    HandleUnsupported(PFNGLFOGCOORDDVEXTPROC, glfogcoorddvext); \
    HandleUnsupported(PFNGLFOGCOORDPOINTEREXTPROC, glfogcoordpointerext); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERIEXTPROC, glprogramparameteriext); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERS4FVEXTPROC, glprogramenvparameters4fvext); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC, glprogramlocalparameters4fvext); \
    HandleUnsupported(PFNGLGETHISTOGRAMEXTPROC, glgethistogramext); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERFVEXTPROC, glgethistogramparameterfvext); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERIVEXTPROC, glgethistogramparameterivext); \
    HandleUnsupported(PFNGLGETMINMAXEXTPROC, glgetminmaxext); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERFVEXTPROC, glgetminmaxparameterfvext); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERIVEXTPROC, glgetminmaxparameterivext); \
    HandleUnsupported(PFNGLHISTOGRAMEXTPROC, glhistogramext); \
    HandleUnsupported(PFNGLMINMAXEXTPROC, glminmaxext); \
    HandleUnsupported(PFNGLRESETHISTOGRAMEXTPROC, glresethistogramext); \
    HandleUnsupported(PFNGLRESETMINMAXEXTPROC, glresetminmaxext); \
    HandleUnsupported(PFNGLINDEXFUNCEXTPROC, glindexfuncext); \
    HandleUnsupported(PFNGLINDEXMATERIALEXTPROC, glindexmaterialext); \
    HandleUnsupported(PFNGLAPPLYTEXTUREEXTPROC, glapplytextureext); \
    HandleUnsupported(PFNGLTEXTURELIGHTEXTPROC, gltexturelightext); \
    HandleUnsupported(PFNGLTEXTUREMATERIALEXTPROC, gltexturematerialext); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSEXTPROC, glmultidrawelementsext); \
    HandleUnsupported(PFNGLSAMPLEMASKEXTPROC, glsamplemaskext); \
    HandleUnsupported(PFNGLSAMPLEPATTERNEXTPROC, glsamplepatternext); \
    HandleUnsupported(PFNGLCOLORTABLEEXTPROC, glcolortableext); \
    HandleUnsupported(PFNGLGETCOLORTABLEEXTPROC, glgetcolortableext); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVEXTPROC, glgetcolortableparameterivext); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVEXTPROC, glgetcolortableparameterfvext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERIEXTPROC, glpixeltransformparameteriext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERFEXTPROC, glpixeltransformparameterfext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC, glpixeltransformparameterivext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC, glpixeltransformparameterfvext); \
    HandleUnsupported(PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC, glgetpixeltransformparameterivext); \
    HandleUnsupported(PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC, glgetpixeltransformparameterfvext); \
    HandleUnsupported(PFNGLPOLYGONOFFSETEXTPROC, glpolygonoffsetext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BEXTPROC, glsecondarycolor3bext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BVEXTPROC, glsecondarycolor3bvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DEXTPROC, glsecondarycolor3dext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DVEXTPROC, glsecondarycolor3dvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FEXTPROC, glsecondarycolor3fext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FVEXTPROC, glsecondarycolor3fvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IEXTPROC, glsecondarycolor3iext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IVEXTPROC, glsecondarycolor3ivext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SEXTPROC, glsecondarycolor3sext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SVEXTPROC, glsecondarycolor3svext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBEXTPROC, glsecondarycolor3ubext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBVEXTPROC, glsecondarycolor3ubvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIEXTPROC, glsecondarycolor3uiext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIVEXTPROC, glsecondarycolor3uivext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USEXTPROC, glsecondarycolor3usext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USVEXTPROC, glsecondarycolor3usvext); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTEREXTPROC, glsecondarycolorpointerext); \
    HandleUnsupported(PFNGLUSESHADERPROGRAMEXTPROC, gluseshaderprogramext); \
    HandleUnsupported(PFNGLACTIVEPROGRAMEXTPROC, glactiveprogramext); \
    HandleUnsupported(PFNGLCREATESHADERPROGRAMEXTPROC, glcreateshaderprogramext); \
    HandleUnsupported(PFNGLSTENCILCLEARTAGEXTPROC, glstencilcleartagext); \
    HandleUnsupported(PFNGLACTIVESTENCILFACEEXTPROC, glactivestencilfaceext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE1DEXTPROC, gltexsubimage1dext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE2DEXTPROC, gltexsubimage2dext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE3DEXTPROC, gltexsubimage3dext); \
    HandleUnsupported(PFNGLCLEARCOLORIIEXTPROC, glclearcoloriiext); \
    HandleUnsupported(PFNGLCLEARCOLORIUIEXTPROC, glclearcoloriuiext); \
    HandleUnsupported(PFNGLARETEXTURESRESIDENTEXTPROC, glaretexturesresidentext); \
    HandleUnsupported(PFNGLBINDTEXTUREEXTPROC, glbindtextureext); \
    HandleUnsupported(PFNGLDELETETEXTURESEXTPROC, gldeletetexturesext); \
    HandleUnsupported(PFNGLGENTEXTURESEXTPROC, glgentexturesext); \
    HandleUnsupported(PFNGLISTEXTUREEXTPROC, glistextureext); \
    HandleUnsupported(PFNGLPRIORITIZETEXTURESEXTPROC, glprioritizetexturesext); \
    HandleUnsupported(PFNGLTEXTURENORMALEXTPROC, gltexturenormalext); \
    HandleUnsupported(PFNGLBINDBUFFEROFFSETEXTPROC, glbindbufferoffsetext); \
    HandleUnsupported(PFNGLARRAYELEMENTEXTPROC, glarrayelementext); \
    HandleUnsupported(PFNGLCOLORPOINTEREXTPROC, glcolorpointerext); \
    HandleUnsupported(PFNGLDRAWARRAYSEXTPROC, gldrawarraysext); \
    HandleUnsupported(PFNGLEDGEFLAGPOINTEREXTPROC, gledgeflagpointerext); \
    HandleUnsupported(PFNGLGETPOINTERVEXTPROC, glgetpointervext); \
    HandleUnsupported(PFNGLINDEXPOINTEREXTPROC, glindexpointerext); \
    HandleUnsupported(PFNGLNORMALPOINTEREXTPROC, glnormalpointerext); \
    HandleUnsupported(PFNGLTEXCOORDPOINTEREXTPROC, gltexcoordpointerext); \
    HandleUnsupported(PFNGLVERTEXPOINTEREXTPROC, glvertexpointerext); \
    HandleUnsupported(PFNGLBEGINVERTEXSHADEREXTPROC, glbeginvertexshaderext); \
    HandleUnsupported(PFNGLENDVERTEXSHADEREXTPROC, glendvertexshaderext); \
    HandleUnsupported(PFNGLBINDVERTEXSHADEREXTPROC, glbindvertexshaderext); \
    HandleUnsupported(PFNGLGENVERTEXSHADERSEXTPROC, glgenvertexshadersext); \
    HandleUnsupported(PFNGLDELETEVERTEXSHADEREXTPROC, gldeletevertexshaderext); \
    HandleUnsupported(PFNGLSHADEROP1EXTPROC, glshaderop1ext); \
    HandleUnsupported(PFNGLSHADEROP2EXTPROC, glshaderop2ext); \
    HandleUnsupported(PFNGLSHADEROP3EXTPROC, glshaderop3ext); \
    HandleUnsupported(PFNGLSWIZZLEEXTPROC, glswizzleext); \
    HandleUnsupported(PFNGLWRITEMASKEXTPROC, glwritemaskext); \
    HandleUnsupported(PFNGLINSERTCOMPONENTEXTPROC, glinsertcomponentext); \
    HandleUnsupported(PFNGLEXTRACTCOMPONENTEXTPROC, glextractcomponentext); \
    HandleUnsupported(PFNGLGENSYMBOLSEXTPROC, glgensymbolsext); \
    HandleUnsupported(PFNGLSETINVARIANTEXTPROC, glsetinvariantext); \
    HandleUnsupported(PFNGLSETLOCALCONSTANTEXTPROC, glsetlocalconstantext); \
    HandleUnsupported(PFNGLVARIANTBVEXTPROC, glvariantbvext); \
    HandleUnsupported(PFNGLVARIANTSVEXTPROC, glvariantsvext); \
    HandleUnsupported(PFNGLVARIANTIVEXTPROC, glvariantivext); \
    HandleUnsupported(PFNGLVARIANTFVEXTPROC, glvariantfvext); \
    HandleUnsupported(PFNGLVARIANTDVEXTPROC, glvariantdvext); \
    HandleUnsupported(PFNGLVARIANTUBVEXTPROC, glvariantubvext); \
    HandleUnsupported(PFNGLVARIANTUSVEXTPROC, glvariantusvext); \
    HandleUnsupported(PFNGLVARIANTUIVEXTPROC, glvariantuivext); \
    HandleUnsupported(PFNGLVARIANTPOINTEREXTPROC, glvariantpointerext); \
    HandleUnsupported(PFNGLENABLEVARIANTCLIENTSTATEEXTPROC, glenablevariantclientstateext); \
    HandleUnsupported(PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC, gldisablevariantclientstateext); \
    HandleUnsupported(PFNGLBINDLIGHTPARAMETEREXTPROC, glbindlightparameterext); \
    HandleUnsupported(PFNGLBINDMATERIALPARAMETEREXTPROC, glbindmaterialparameterext); \
    HandleUnsupported(PFNGLBINDTEXGENPARAMETEREXTPROC, glbindtexgenparameterext); \
    HandleUnsupported(PFNGLBINDTEXTUREUNITPARAMETEREXTPROC, glbindtextureunitparameterext); \
    HandleUnsupported(PFNGLBINDPARAMETEREXTPROC, glbindparameterext); \
    HandleUnsupported(PFNGLISVARIANTENABLEDEXTPROC, glisvariantenabledext); \
    HandleUnsupported(PFNGLGETVARIANTBOOLEANVEXTPROC, glgetvariantbooleanvext); \
    HandleUnsupported(PFNGLGETVARIANTINTEGERVEXTPROC, glgetvariantintegervext); \
    HandleUnsupported(PFNGLGETVARIANTFLOATVEXTPROC, glgetvariantfloatvext); \
    HandleUnsupported(PFNGLGETVARIANTPOINTERVEXTPROC, glgetvariantpointervext); \
    HandleUnsupported(PFNGLGETINVARIANTBOOLEANVEXTPROC, glgetinvariantbooleanvext); \
    HandleUnsupported(PFNGLGETINVARIANTINTEGERVEXTPROC, glgetinvariantintegervext); \
    HandleUnsupported(PFNGLGETINVARIANTFLOATVEXTPROC, glgetinvariantfloatvext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC, glgetlocalconstantbooleanvext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTINTEGERVEXTPROC, glgetlocalconstantintegervext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTFLOATVEXTPROC, glgetlocalconstantfloatvext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTFEXTPROC, glvertexweightfext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTFVEXTPROC, glvertexweightfvext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTPOINTEREXTPROC, glvertexweightpointerext); \
    HandleUnsupported(PFNGLIMPORTSYNCEXTPROC, glimportsyncext); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERIHPPROC, glimagetransformparameterihp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERFHPPROC, glimagetransformparameterfhp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERIVHPPROC, glimagetransformparameterivhp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERFVHPPROC, glimagetransformparameterfvhp); \
    HandleUnsupported(PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC, glgetimagetransformparameterivhp); \
    HandleUnsupported(PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC, glgetimagetransformparameterfvhp); \
    HandleUnsupported(PFNGLMULTIMODEDRAWARRAYSIBMPROC, glmultimodedrawarraysibm); \
    HandleUnsupported(PFNGLMULTIMODEDRAWELEMENTSIBMPROC, glmultimodedrawelementsibm); \
    HandleUnsupported(PFNGLFLUSHSTATICDATAIBMPROC, glflushstaticdataibm); \
    HandleUnsupported(PFNGLCOLORPOINTERLISTIBMPROC, glcolorpointerlistibm); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTERLISTIBMPROC, glsecondarycolorpointerlistibm); \
    HandleUnsupported(PFNGLEDGEFLAGPOINTERLISTIBMPROC, gledgeflagpointerlistibm); \
    HandleUnsupported(PFNGLFOGCOORDPOINTERLISTIBMPROC, glfogcoordpointerlistibm); \
    HandleUnsupported(PFNGLINDEXPOINTERLISTIBMPROC, glindexpointerlistibm); \
    HandleUnsupported(PFNGLNORMALPOINTERLISTIBMPROC, glnormalpointerlistibm); \
    HandleUnsupported(PFNGLTEXCOORDPOINTERLISTIBMPROC, gltexcoordpointerlistibm); \
    HandleUnsupported(PFNGLVERTEXPOINTERLISTIBMPROC, glvertexpointerlistibm); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEINGRPROC, glblendfuncseparateingr); \
    HandleUnsupported(PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC, glapplyframebufferattachmentcmaaintel); \
    HandleUnsupported(PFNGLSYNCTEXTUREINTELPROC, glsynctextureintel); \
    HandleUnsupported(PFNGLUNMAPTEXTURE2DINTELPROC, glunmaptexture2dintel); \
    HandleUnsupported(PFNGLMAPTEXTURE2DINTELPROC, glmaptexture2dintel); \
    HandleUnsupported(PFNGLVERTEXPOINTERVINTELPROC, glvertexpointervintel); \
    HandleUnsupported(PFNGLNORMALPOINTERVINTELPROC, glnormalpointervintel); \
    HandleUnsupported(PFNGLCOLORPOINTERVINTELPROC, glcolorpointervintel); \
    HandleUnsupported(PFNGLTEXCOORDPOINTERVINTELPROC, gltexcoordpointervintel); \
    HandleUnsupported(PFNGLBEGINPERFQUERYINTELPROC, glbeginperfqueryintel); \
    HandleUnsupported(PFNGLCREATEPERFQUERYINTELPROC, glcreateperfqueryintel); \
    HandleUnsupported(PFNGLDELETEPERFQUERYINTELPROC, gldeleteperfqueryintel); \
    HandleUnsupported(PFNGLENDPERFQUERYINTELPROC, glendperfqueryintel); \
    HandleUnsupported(PFNGLGETFIRSTPERFQUERYIDINTELPROC, glgetfirstperfqueryidintel); \
    HandleUnsupported(PFNGLGETNEXTPERFQUERYIDINTELPROC, glgetnextperfqueryidintel); \
    HandleUnsupported(PFNGLGETPERFCOUNTERINFOINTELPROC, glgetperfcounterinfointel); \
    HandleUnsupported(PFNGLGETPERFQUERYDATAINTELPROC, glgetperfquerydataintel); \
    HandleUnsupported(PFNGLGETPERFQUERYIDBYNAMEINTELPROC, glgetperfqueryidbynameintel); \
    HandleUnsupported(PFNGLGETPERFQUERYINFOINTELPROC, glgetperfqueryinfointel); \
    HandleUnsupported(PFNGLRESIZEBUFFERSMESAPROC, glresizebuffersmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2DMESAPROC, glwindowpos2dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2DVMESAPROC, glwindowpos2dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2FMESAPROC, glwindowpos2fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2FVMESAPROC, glwindowpos2fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2IMESAPROC, glwindowpos2imesa); \
    HandleUnsupported(PFNGLWINDOWPOS2IVMESAPROC, glwindowpos2ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2SMESAPROC, glwindowpos2smesa); \
    HandleUnsupported(PFNGLWINDOWPOS2SVMESAPROC, glwindowpos2svmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3DMESAPROC, glwindowpos3dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3DVMESAPROC, glwindowpos3dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3FMESAPROC, glwindowpos3fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3FVMESAPROC, glwindowpos3fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3IMESAPROC, glwindowpos3imesa); \
    HandleUnsupported(PFNGLWINDOWPOS3IVMESAPROC, glwindowpos3ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3SMESAPROC, glwindowpos3smesa); \
    HandleUnsupported(PFNGLWINDOWPOS3SVMESAPROC, glwindowpos3svmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4DMESAPROC, glwindowpos4dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4DVMESAPROC, glwindowpos4dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4FMESAPROC, glwindowpos4fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4FVMESAPROC, glwindowpos4fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4IMESAPROC, glwindowpos4imesa); \
    HandleUnsupported(PFNGLWINDOWPOS4IVMESAPROC, glwindowpos4ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4SMESAPROC, glwindowpos4smesa); \
    HandleUnsupported(PFNGLWINDOWPOS4SVMESAPROC, glwindowpos4svmesa); \
    HandleUnsupported(PFNGLBEGINCONDITIONALRENDERNVXPROC, glbeginconditionalrendernvx); \
    HandleUnsupported(PFNGLENDCONDITIONALRENDERNVXPROC, glendconditionalrendernvx); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC, glmultidrawarraysindirectbindlessnv); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC, glmultidrawelementsindirectbindlessnv); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC, glmultidrawarraysindirectbindlesscountnv); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC, glmultidrawelementsindirectbindlesscountnv); \
    HandleUnsupported(PFNGLGETTEXTUREHANDLENVPROC, glgettexturehandlenv); \
    HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLENVPROC, glgettexturesamplerhandlenv); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLERESIDENTNVPROC, glmaketexturehandleresidentnv); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC, glmaketexturehandlenonresidentnv); \
    HandleUnsupported(PFNGLGETIMAGEHANDLENVPROC, glgetimagehandlenv); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLERESIDENTNVPROC, glmakeimagehandleresidentnv); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC, glmakeimagehandlenonresidentnv); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64NVPROC, gluniformhandleui64nv); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64VNVPROC, gluniformhandleui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC, glprogramuniformhandleui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC, glprogramuniformhandleui64vnv); \
    HandleUnsupported(PFNGLISTEXTUREHANDLERESIDENTNVPROC, glistexturehandleresidentnv); \
    HandleUnsupported(PFNGLISIMAGEHANDLERESIDENTNVPROC, glisimagehandleresidentnv); \
    HandleUnsupported(PFNGLBLENDPARAMETERINVPROC, glblendparameterinv); \
    HandleUnsupported(PFNGLBLENDBARRIERNVPROC, glblendbarriernv); \
    HandleUnsupported(PFNGLCREATESTATESNVPROC, glcreatestatesnv); \
    HandleUnsupported(PFNGLDELETESTATESNVPROC, gldeletestatesnv); \
    HandleUnsupported(PFNGLISSTATENVPROC, glisstatenv); \
    HandleUnsupported(PFNGLSTATECAPTURENVPROC, glstatecapturenv); \
    HandleUnsupported(PFNGLGETCOMMANDHEADERNVPROC, glgetcommandheadernv); \
    HandleUnsupported(PFNGLGETSTAGEINDEXNVPROC, glgetstageindexnv); \
    HandleUnsupported(PFNGLDRAWCOMMANDSNVPROC, gldrawcommandsnv); \
    HandleUnsupported(PFNGLDRAWCOMMANDSADDRESSNVPROC, gldrawcommandsaddressnv); \
    HandleUnsupported(PFNGLDRAWCOMMANDSSTATESNVPROC, gldrawcommandsstatesnv); \
    HandleUnsupported(PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC, gldrawcommandsstatesaddressnv); \
    HandleUnsupported(PFNGLCREATECOMMANDLISTSNVPROC, glcreatecommandlistsnv); \
    HandleUnsupported(PFNGLDELETECOMMANDLISTSNVPROC, gldeletecommandlistsnv); \
    HandleUnsupported(PFNGLISCOMMANDLISTNVPROC, gliscommandlistnv); \
    HandleUnsupported(PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC, gllistdrawcommandsstatesclientnv); \
    HandleUnsupported(PFNGLCOMMANDLISTSEGMENTSNVPROC, glcommandlistsegmentsnv); \
    HandleUnsupported(PFNGLCOMPILECOMMANDLISTNVPROC, glcompilecommandlistnv); \
    HandleUnsupported(PFNGLCALLCOMMANDLISTNVPROC, glcallcommandlistnv); \
    HandleUnsupported(PFNGLBEGINCONDITIONALRENDERNVPROC, glbeginconditionalrendernv); \
    HandleUnsupported(PFNGLENDCONDITIONALRENDERNVPROC, glendconditionalrendernv); \
    HandleUnsupported(PFNGLSUBPIXELPRECISIONBIASNVPROC, glsubpixelprecisionbiasnv); \
    HandleUnsupported(PFNGLCONSERVATIVERASTERPARAMETERFNVPROC, glconservativerasterparameterfnv); \
    HandleUnsupported(PFNGLCOPYIMAGESUBDATANVPROC, glcopyimagesubdatanv); \
    HandleUnsupported(PFNGLDEPTHRANGEDNVPROC, gldepthrangednv); \
    HandleUnsupported(PFNGLCLEARDEPTHDNVPROC, glcleardepthdnv); \
    HandleUnsupported(PFNGLDEPTHBOUNDSDNVPROC, gldepthboundsdnv); \
    HandleUnsupported(PFNGLDRAWTEXTURENVPROC, gldrawtexturenv); \
    HandleUnsupported(PFNGLMAPCONTROLPOINTSNVPROC, glmapcontrolpointsnv); \
    HandleUnsupported(PFNGLMAPPARAMETERIVNVPROC, glmapparameterivnv); \
    HandleUnsupported(PFNGLMAPPARAMETERFVNVPROC, glmapparameterfvnv); \
    HandleUnsupported(PFNGLGETMAPCONTROLPOINTSNVPROC, glgetmapcontrolpointsnv); \
    HandleUnsupported(PFNGLGETMAPPARAMETERIVNVPROC, glgetmapparameterivnv); \
    HandleUnsupported(PFNGLGETMAPPARAMETERFVNVPROC, glgetmapparameterfvnv); \
    HandleUnsupported(PFNGLGETMAPATTRIBPARAMETERIVNVPROC, glgetmapattribparameterivnv); \
    HandleUnsupported(PFNGLGETMAPATTRIBPARAMETERFVNVPROC, glgetmapattribparameterfvnv); \
    HandleUnsupported(PFNGLEVALMAPSNVPROC, glevalmapsnv); \
    HandleUnsupported(PFNGLGETMULTISAMPLEFVNVPROC, glgetmultisamplefvnv); \
    HandleUnsupported(PFNGLSAMPLEMASKINDEXEDNVPROC, glsamplemaskindexednv); \
    HandleUnsupported(PFNGLTEXRENDERBUFFERNVPROC, gltexrenderbuffernv); \
    HandleUnsupported(PFNGLDELETEFENCESNVPROC, gldeletefencesnv); \
    HandleUnsupported(PFNGLGENFENCESNVPROC, glgenfencesnv); \
    HandleUnsupported(PFNGLISFENCENVPROC, glisfencenv); \
    HandleUnsupported(PFNGLTESTFENCENVPROC, gltestfencenv); \
    HandleUnsupported(PFNGLGETFENCEIVNVPROC, glgetfenceivnv); \
    HandleUnsupported(PFNGLFINISHFENCENVPROC, glfinishfencenv); \
    HandleUnsupported(PFNGLSETFENCENVPROC, glsetfencenv); \
    HandleUnsupported(PFNGLFRAGMENTCOVERAGECOLORNVPROC, glfragmentcoveragecolornv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FNVPROC, glprogramnamedparameter4fnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC, glprogramnamedparameter4fvnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DNVPROC, glprogramnamedparameter4dnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC, glprogramnamedparameter4dvnv); \
    HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC, glgetprogramnamedparameterfvnv); \
    HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC, glgetprogramnamedparameterdvnv); \
    HandleUnsupported(PFNGLCOVERAGEMODULATIONTABLENVPROC, glcoveragemodulationtablenv); \
    HandleUnsupported(PFNGLGETCOVERAGEMODULATIONTABLENVPROC, glgetcoveragemodulationtablenv); \
    HandleUnsupported(PFNGLCOVERAGEMODULATIONNVPROC, glcoveragemodulationnv); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC, glrenderbufferstoragemultisamplecoveragenv); \
    HandleUnsupported(PFNGLPROGRAMVERTEXLIMITNVPROC, glprogramvertexlimitnv); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC, glframebuffertexturefaceext); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4INVPROC, glprogramlocalparameteri4inv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC, glprogramlocalparameteri4ivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC, glprogramlocalparametersi4ivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4UINVPROC, glprogramlocalparameteri4uinv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC, glprogramlocalparameteri4uivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC, glprogramlocalparametersi4uivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4INVPROC, glprogramenvparameteri4inv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4IVNVPROC, glprogramenvparameteri4ivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERSI4IVNVPROC, glprogramenvparametersi4ivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4UINVPROC, glprogramenvparameteri4uinv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4UIVNVPROC, glprogramenvparameteri4uivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC, glprogramenvparametersi4uivnv); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC, glgetprogramlocalparameteriivnv); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC, glgetprogramlocalparameteriuivnv); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERIIVNVPROC, glgetprogramenvparameteriivnv); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC, glgetprogramenvparameteriuivnv); \
    HandleUnsupported(PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC, glprogramsubroutineparametersuivnv); \
    HandleUnsupported(PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC, glgetprogramsubroutineparameteruivnv); \
    HandleUnsupported(PFNGLVERTEX2HNVPROC, glvertex2hnv); \
    HandleUnsupported(PFNGLVERTEX2HVNVPROC, glvertex2hvnv); \
    HandleUnsupported(PFNGLVERTEX3HNVPROC, glvertex3hnv); \
    HandleUnsupported(PFNGLVERTEX3HVNVPROC, glvertex3hvnv); \
    HandleUnsupported(PFNGLVERTEX4HNVPROC, glvertex4hnv); \
    HandleUnsupported(PFNGLVERTEX4HVNVPROC, glvertex4hvnv); \
    HandleUnsupported(PFNGLNORMAL3HNVPROC, glnormal3hnv); \
    HandleUnsupported(PFNGLNORMAL3HVNVPROC, glnormal3hvnv); \
    HandleUnsupported(PFNGLCOLOR3HNVPROC, glcolor3hnv); \
    HandleUnsupported(PFNGLCOLOR3HVNVPROC, glcolor3hvnv); \
    HandleUnsupported(PFNGLCOLOR4HNVPROC, glcolor4hnv); \
    HandleUnsupported(PFNGLCOLOR4HVNVPROC, glcolor4hvnv); \
    HandleUnsupported(PFNGLTEXCOORD1HNVPROC, gltexcoord1hnv); \
    HandleUnsupported(PFNGLTEXCOORD1HVNVPROC, gltexcoord1hvnv); \
    HandleUnsupported(PFNGLTEXCOORD2HNVPROC, gltexcoord2hnv); \
    HandleUnsupported(PFNGLTEXCOORD2HVNVPROC, gltexcoord2hvnv); \
    HandleUnsupported(PFNGLTEXCOORD3HNVPROC, gltexcoord3hnv); \
    HandleUnsupported(PFNGLTEXCOORD3HVNVPROC, gltexcoord3hvnv); \
    HandleUnsupported(PFNGLTEXCOORD4HNVPROC, gltexcoord4hnv); \
    HandleUnsupported(PFNGLTEXCOORD4HVNVPROC, gltexcoord4hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1HNVPROC, glmultitexcoord1hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1HVNVPROC, glmultitexcoord1hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2HNVPROC, glmultitexcoord2hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2HVNVPROC, glmultitexcoord2hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3HNVPROC, glmultitexcoord3hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3HVNVPROC, glmultitexcoord3hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4HNVPROC, glmultitexcoord4hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4HVNVPROC, glmultitexcoord4hvnv); \
    HandleUnsupported(PFNGLFOGCOORDHNVPROC, glfogcoordhnv); \
    HandleUnsupported(PFNGLFOGCOORDHVNVPROC, glfogcoordhvnv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3HNVPROC, glsecondarycolor3hnv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3HVNVPROC, glsecondarycolor3hvnv); \
    HandleUnsupported(PFNGLVERTEXWEIGHTHNVPROC, glvertexweighthnv); \
    HandleUnsupported(PFNGLVERTEXWEIGHTHVNVPROC, glvertexweighthvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1HNVPROC, glvertexattrib1hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1HVNVPROC, glvertexattrib1hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2HNVPROC, glvertexattrib2hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2HVNVPROC, glvertexattrib2hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3HNVPROC, glvertexattrib3hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3HVNVPROC, glvertexattrib3hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4HNVPROC, glvertexattrib4hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4HVNVPROC, glvertexattrib4hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1HVNVPROC, glvertexattribs1hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2HVNVPROC, glvertexattribs2hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3HVNVPROC, glvertexattribs3hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4HVNVPROC, glvertexattribs4hvnv); \
    HandleUnsupported(PFNGLGETINTERNALFORMATSAMPLEIVNVPROC, glgetinternalformatsampleivnv); \
    HandleUnsupported(PFNGLGENOCCLUSIONQUERIESNVPROC, glgenocclusionqueriesnv); \
    HandleUnsupported(PFNGLDELETEOCCLUSIONQUERIESNVPROC, gldeleteocclusionqueriesnv); \
    HandleUnsupported(PFNGLISOCCLUSIONQUERYNVPROC, glisocclusionquerynv); \
    HandleUnsupported(PFNGLBEGINOCCLUSIONQUERYNVPROC, glbeginocclusionquerynv); \
    HandleUnsupported(PFNGLENDOCCLUSIONQUERYNVPROC, glendocclusionquerynv); \
    HandleUnsupported(PFNGLGETOCCLUSIONQUERYIVNVPROC, glgetocclusionqueryivnv); \
    HandleUnsupported(PFNGLGETOCCLUSIONQUERYUIVNVPROC, glgetocclusionqueryuivnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC, glprogrambufferparametersfvnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC, glprogrambufferparametersiivnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC, glprogrambufferparametersiuivnv); \
    HandleUnsupported(PFNGLGENPATHSNVPROC, glgenpathsnv); \
    HandleUnsupported(PFNGLDELETEPATHSNVPROC, gldeletepathsnv); \
    HandleUnsupported(PFNGLISPATHNVPROC, glispathnv); \
    HandleUnsupported(PFNGLPATHCOMMANDSNVPROC, glpathcommandsnv); \
    HandleUnsupported(PFNGLPATHCOORDSNVPROC, glpathcoordsnv); \
    HandleUnsupported(PFNGLPATHSUBCOMMANDSNVPROC, glpathsubcommandsnv); \
    HandleUnsupported(PFNGLPATHSUBCOORDSNVPROC, glpathsubcoordsnv); \
    HandleUnsupported(PFNGLPATHSTRINGNVPROC, glpathstringnv); \
    HandleUnsupported(PFNGLPATHGLYPHSNVPROC, glpathglyphsnv); \
    HandleUnsupported(PFNGLPATHGLYPHRANGENVPROC, glpathglyphrangenv); \
    HandleUnsupported(PFNGLWEIGHTPATHSNVPROC, glweightpathsnv); \
    HandleUnsupported(PFNGLCOPYPATHNVPROC, glcopypathnv); \
    HandleUnsupported(PFNGLINTERPOLATEPATHSNVPROC, glinterpolatepathsnv); \
    HandleUnsupported(PFNGLTRANSFORMPATHNVPROC, gltransformpathnv); \
    HandleUnsupported(PFNGLPATHPARAMETERIVNVPROC, glpathparameterivnv); \
    HandleUnsupported(PFNGLPATHPARAMETERINVPROC, glpathparameterinv); \
    HandleUnsupported(PFNGLPATHPARAMETERFVNVPROC, glpathparameterfvnv); \
    HandleUnsupported(PFNGLPATHPARAMETERFNVPROC, glpathparameterfnv); \
    HandleUnsupported(PFNGLPATHDASHARRAYNVPROC, glpathdasharraynv); \
    HandleUnsupported(PFNGLPATHSTENCILFUNCNVPROC, glpathstencilfuncnv); \
    HandleUnsupported(PFNGLPATHSTENCILDEPTHOFFSETNVPROC, glpathstencildepthoffsetnv); \
    HandleUnsupported(PFNGLSTENCILFILLPATHNVPROC, glstencilfillpathnv); \
    HandleUnsupported(PFNGLSTENCILSTROKEPATHNVPROC, glstencilstrokepathnv); \
    HandleUnsupported(PFNGLSTENCILFILLPATHINSTANCEDNVPROC, glstencilfillpathinstancednv); \
    HandleUnsupported(PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC, glstencilstrokepathinstancednv); \
    HandleUnsupported(PFNGLPATHCOVERDEPTHFUNCNVPROC, glpathcoverdepthfuncnv); \
    HandleUnsupported(PFNGLCOVERFILLPATHNVPROC, glcoverfillpathnv); \
    HandleUnsupported(PFNGLCOVERSTROKEPATHNVPROC, glcoverstrokepathnv); \
    HandleUnsupported(PFNGLCOVERFILLPATHINSTANCEDNVPROC, glcoverfillpathinstancednv); \
    HandleUnsupported(PFNGLCOVERSTROKEPATHINSTANCEDNVPROC, glcoverstrokepathinstancednv); \
    HandleUnsupported(PFNGLGETPATHPARAMETERIVNVPROC, glgetpathparameterivnv); \
    HandleUnsupported(PFNGLGETPATHPARAMETERFVNVPROC, glgetpathparameterfvnv); \
    HandleUnsupported(PFNGLGETPATHCOMMANDSNVPROC, glgetpathcommandsnv); \
    HandleUnsupported(PFNGLGETPATHCOORDSNVPROC, glgetpathcoordsnv); \
    HandleUnsupported(PFNGLGETPATHDASHARRAYNVPROC, glgetpathdasharraynv); \
    HandleUnsupported(PFNGLGETPATHMETRICSNVPROC, glgetpathmetricsnv); \
    HandleUnsupported(PFNGLGETPATHMETRICRANGENVPROC, glgetpathmetricrangenv); \
    HandleUnsupported(PFNGLGETPATHSPACINGNVPROC, glgetpathspacingnv); \
    HandleUnsupported(PFNGLISPOINTINFILLPATHNVPROC, glispointinfillpathnv); \
    HandleUnsupported(PFNGLISPOINTINSTROKEPATHNVPROC, glispointinstrokepathnv); \
    HandleUnsupported(PFNGLGETPATHLENGTHNVPROC, glgetpathlengthnv); \
    HandleUnsupported(PFNGLPOINTALONGPATHNVPROC, glpointalongpathnv); \
    HandleUnsupported(PFNGLMATRIXLOAD3X2FNVPROC, glmatrixload3x2fnv); \
    HandleUnsupported(PFNGLMATRIXLOAD3X3FNVPROC, glmatrixload3x3fnv); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC, glmatrixloadtranspose3x3fnv); \
    HandleUnsupported(PFNGLMATRIXMULT3X2FNVPROC, glmatrixmult3x2fnv); \
    HandleUnsupported(PFNGLMATRIXMULT3X3FNVPROC, glmatrixmult3x3fnv); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC, glmatrixmulttranspose3x3fnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERFILLPATHNVPROC, glstencilthencoverfillpathnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC, glstencilthencoverstrokepathnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC, glstencilthencoverfillpathinstancednv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC, glstencilthencoverstrokepathinstancednv); \
    HandleUnsupported(PFNGLPATHGLYPHINDEXRANGENVPROC, glpathglyphindexrangenv); \
    HandleUnsupported(PFNGLPATHGLYPHINDEXARRAYNVPROC, glpathglyphindexarraynv); \
    HandleUnsupported(PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC, glpathmemoryglyphindexarraynv); \
    HandleUnsupported(PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC, glprogrampathfragmentinputgennv); \
    HandleUnsupported(PFNGLGETPROGRAMRESOURCEFVNVPROC, glgetprogramresourcefvnv); \
    HandleUnsupported(PFNGLPATHCOLORGENNVPROC, glpathcolorgennv); \
    HandleUnsupported(PFNGLPATHTEXGENNVPROC, glpathtexgennv); \
    HandleUnsupported(PFNGLPATHFOGGENNVPROC, glpathfoggennv); \
    HandleUnsupported(PFNGLGETPATHCOLORGENIVNVPROC, glgetpathcolorgenivnv); \
    HandleUnsupported(PFNGLGETPATHCOLORGENFVNVPROC, glgetpathcolorgenfvnv); \
    HandleUnsupported(PFNGLGETPATHTEXGENIVNVPROC, glgetpathtexgenivnv); \
    HandleUnsupported(PFNGLGETPATHTEXGENFVNVPROC, glgetpathtexgenfvnv); \
    HandleUnsupported(PFNGLPIXELDATARANGENVPROC, glpixeldatarangenv); \
    HandleUnsupported(PFNGLFLUSHPIXELDATARANGENVPROC, glflushpixeldatarangenv); \
    HandleUnsupported(PFNGLPOINTPARAMETERINVPROC, glpointparameterinv); \
    HandleUnsupported(PFNGLPOINTPARAMETERIVNVPROC, glpointparameterivnv); \
    HandleUnsupported(PFNGLPRESENTFRAMEKEYEDNVPROC, glpresentframekeyednv); \
    HandleUnsupported(PFNGLPRESENTFRAMEDUALFILLNVPROC, glpresentframedualfillnv); \
    HandleUnsupported(PFNGLGETVIDEOIVNVPROC, glgetvideoivnv); \
    HandleUnsupported(PFNGLGETVIDEOUIVNVPROC, glgetvideouivnv); \
    HandleUnsupported(PFNGLGETVIDEOI64VNVPROC, glgetvideoi64vnv); \
    HandleUnsupported(PFNGLGETVIDEOUI64VNVPROC, glgetvideoui64vnv); \
    HandleUnsupported(PFNGLPRIMITIVERESTARTNVPROC, glprimitiverestartnv); \
    HandleUnsupported(PFNGLPRIMITIVERESTARTINDEXNVPROC, glprimitiverestartindexnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERFVNVPROC, glcombinerparameterfvnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERFNVPROC, glcombinerparameterfnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERIVNVPROC, glcombinerparameterivnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERINVPROC, glcombinerparameterinv); \
    HandleUnsupported(PFNGLCOMBINERINPUTNVPROC, glcombinerinputnv); \
    HandleUnsupported(PFNGLCOMBINEROUTPUTNVPROC, glcombineroutputnv); \
    HandleUnsupported(PFNGLFINALCOMBINERINPUTNVPROC, glfinalcombinerinputnv); \
    HandleUnsupported(PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC, glgetcombinerinputparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC, glgetcombinerinputparameterivnv); \
    HandleUnsupported(PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC, glgetcombineroutputparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC, glgetcombineroutputparameterivnv); \
    HandleUnsupported(PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC, glgetfinalcombinerinputparameterfvnv); \
    HandleUnsupported(PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC, glgetfinalcombinerinputparameterivnv); \
    HandleUnsupported(PFNGLCOMBINERSTAGEPARAMETERFVNVPROC, glcombinerstageparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC, glgetcombinerstageparameterfvnv); \
    HandleUnsupported(PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glframebuffersamplelocationsfvnv); \
    HandleUnsupported(PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glnamedframebuffersamplelocationsfvnv); \
    HandleUnsupported(PFNGLRESOLVEDEPTHVALUESNVPROC, glresolvedepthvaluesnv); \
    HandleUnsupported(PFNGLMAKEBUFFERRESIDENTNVPROC, glmakebufferresidentnv); \
    HandleUnsupported(PFNGLMAKEBUFFERNONRESIDENTNVPROC, glmakebuffernonresidentnv); \
    HandleUnsupported(PFNGLISBUFFERRESIDENTNVPROC, glisbufferresidentnv); \
    HandleUnsupported(PFNGLMAKENAMEDBUFFERRESIDENTNVPROC, glmakenamedbufferresidentnv); \
    HandleUnsupported(PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC, glmakenamedbuffernonresidentnv); \
    HandleUnsupported(PFNGLISNAMEDBUFFERRESIDENTNVPROC, glisnamedbufferresidentnv); \
    HandleUnsupported(PFNGLGETBUFFERPARAMETERUI64VNVPROC, glgetbufferparameterui64vnv); \
    HandleUnsupported(PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC, glgetnamedbufferparameterui64vnv); \
    HandleUnsupported(PFNGLGETINTEGERUI64VNVPROC, glgetintegerui64vnv); \
    HandleUnsupported(PFNGLUNIFORMUI64NVPROC, gluniformui64nv); \
    HandleUnsupported(PFNGLUNIFORMUI64VNVPROC, gluniformui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMUI64NVPROC, glprogramuniformui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMUI64VNVPROC, glprogramuniformui64vnv); \
    HandleUnsupported(PFNGLTEXTUREBARRIERNVPROC, gltexturebarriernv); \
    HandleUnsupported(PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC, glteximage2dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC, glteximage3dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC, gltextureimage2dmultisamplenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC, gltextureimage3dmultisamplenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC, gltextureimage2dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC, gltextureimage3dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLBEGINTRANSFORMFEEDBACKNVPROC, glbegintransformfeedbacknv); \
    HandleUnsupported(PFNGLENDTRANSFORMFEEDBACKNVPROC, glendtransformfeedbacknv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC, gltransformfeedbackattribsnv); \
    HandleUnsupported(PFNGLBINDBUFFERRANGENVPROC, glbindbufferrangenv); \
    HandleUnsupported(PFNGLBINDBUFFEROFFSETNVPROC, glbindbufferoffsetnv); \
    HandleUnsupported(PFNGLBINDBUFFERBASENVPROC, glbindbufferbasenv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC, gltransformfeedbackvaryingsnv); \
    HandleUnsupported(PFNGLACTIVEVARYINGNVPROC, glactivevaryingnv); \
    HandleUnsupported(PFNGLGETVARYINGLOCATIONNVPROC, glgetvaryinglocationnv); \
    HandleUnsupported(PFNGLGETACTIVEVARYINGNVPROC, glgetactivevaryingnv); \
    HandleUnsupported(PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC, glgettransformfeedbackvaryingnv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC, gltransformfeedbackstreamattribsnv); \
    HandleUnsupported(PFNGLBINDTRANSFORMFEEDBACKNVPROC, glbindtransformfeedbacknv); \
    HandleUnsupported(PFNGLDELETETRANSFORMFEEDBACKSNVPROC, gldeletetransformfeedbacksnv); \
    HandleUnsupported(PFNGLGENTRANSFORMFEEDBACKSNVPROC, glgentransformfeedbacksnv); \
    HandleUnsupported(PFNGLISTRANSFORMFEEDBACKNVPROC, glistransformfeedbacknv); \
    HandleUnsupported(PFNGLPAUSETRANSFORMFEEDBACKNVPROC, glpausetransformfeedbacknv); \
    HandleUnsupported(PFNGLRESUMETRANSFORMFEEDBACKNVPROC, glresumetransformfeedbacknv); \
    HandleUnsupported(PFNGLDRAWTRANSFORMFEEDBACKNVPROC, gldrawtransformfeedbacknv); \
    HandleUnsupported(PFNGLVDPAUINITNVPROC, glvdpauinitnv); \
    HandleUnsupported(PFNGLVDPAUFININVPROC, glvdpaufininv); \
    HandleUnsupported(PFNGLVDPAUREGISTERVIDEOSURFACENVPROC, glvdpauregistervideosurfacenv); \
    HandleUnsupported(PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC, glvdpauregisteroutputsurfacenv); \
    HandleUnsupported(PFNGLVDPAUISSURFACENVPROC, glvdpauissurfacenv); \
    HandleUnsupported(PFNGLVDPAUUNREGISTERSURFACENVPROC, glvdpauunregistersurfacenv); \
    HandleUnsupported(PFNGLVDPAUGETSURFACEIVNVPROC, glvdpaugetsurfaceivnv); \
    HandleUnsupported(PFNGLVDPAUSURFACEACCESSNVPROC, glvdpausurfaceaccessnv); \
    HandleUnsupported(PFNGLVDPAUMAPSURFACESNVPROC, glvdpaumapsurfacesnv); \
    HandleUnsupported(PFNGLVDPAUUNMAPSURFACESNVPROC, glvdpauunmapsurfacesnv); \
    HandleUnsupported(PFNGLFLUSHVERTEXARRAYRANGENVPROC, glflushvertexarrayrangenv); \
    HandleUnsupported(PFNGLVERTEXARRAYRANGENVPROC, glvertexarrayrangenv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1I64NVPROC, glvertexattribl1i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2I64NVPROC, glvertexattribl2i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3I64NVPROC, glvertexattribl3i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4I64NVPROC, glvertexattribl4i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1I64VNVPROC, glvertexattribl1i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2I64VNVPROC, glvertexattribl2i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3I64VNVPROC, glvertexattribl3i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4I64VNVPROC, glvertexattribl4i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64NVPROC, glvertexattribl1ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2UI64NVPROC, glvertexattribl2ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3UI64NVPROC, glvertexattribl3ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4UI64NVPROC, glvertexattribl4ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64VNVPROC, glvertexattribl1ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2UI64VNVPROC, glvertexattribl2ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3UI64VNVPROC, glvertexattribl3ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4UI64VNVPROC, glvertexattribl4ui64vnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLI64VNVPROC, glgetvertexattribli64vnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLUI64VNVPROC, glgetvertexattriblui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBLFORMATNVPROC, glvertexattriblformatnv); \
    HandleUnsupported(PFNGLBUFFERADDRESSRANGENVPROC, glbufferaddressrangenv); \
    HandleUnsupported(PFNGLVERTEXFORMATNVPROC, glvertexformatnv); \
    HandleUnsupported(PFNGLNORMALFORMATNVPROC, glnormalformatnv); \
    HandleUnsupported(PFNGLCOLORFORMATNVPROC, glcolorformatnv); \
    HandleUnsupported(PFNGLINDEXFORMATNVPROC, glindexformatnv); \
    HandleUnsupported(PFNGLTEXCOORDFORMATNVPROC, gltexcoordformatnv); \
    HandleUnsupported(PFNGLEDGEFLAGFORMATNVPROC, gledgeflagformatnv); \
    HandleUnsupported(PFNGLSECONDARYCOLORFORMATNVPROC, glsecondarycolorformatnv); \
    HandleUnsupported(PFNGLFOGCOORDFORMATNVPROC, glfogcoordformatnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBFORMATNVPROC, glvertexattribformatnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBIFORMATNVPROC, glvertexattribiformatnv); \
    HandleUnsupported(PFNGLGETINTEGERUI64I_VNVPROC, glgetintegerui64i_vnv); \
    HandleUnsupported(PFNGLAREPROGRAMSRESIDENTNVPROC, glareprogramsresidentnv); \
    HandleUnsupported(PFNGLBINDPROGRAMNVPROC, glbindprogramnv); \
    HandleUnsupported(PFNGLDELETEPROGRAMSNVPROC, gldeleteprogramsnv); \
    HandleUnsupported(PFNGLEXECUTEPROGRAMNVPROC, glexecuteprogramnv); \
    HandleUnsupported(PFNGLGENPROGRAMSNVPROC, glgenprogramsnv); \
    HandleUnsupported(PFNGLGETPROGRAMPARAMETERDVNVPROC, glgetprogramparameterdvnv); \
    HandleUnsupported(PFNGLGETPROGRAMPARAMETERFVNVPROC, glgetprogramparameterfvnv); \
    HandleUnsupported(PFNGLGETPROGRAMIVNVPROC, glgetprogramivnv); \
    HandleUnsupported(PFNGLGETPROGRAMSTRINGNVPROC, glgetprogramstringnv); \
    HandleUnsupported(PFNGLGETTRACKMATRIXIVNVPROC, glgettrackmatrixivnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBDVNVPROC, glgetvertexattribdvnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBFVNVPROC, glgetvertexattribfvnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBIVNVPROC, glgetvertexattribivnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBPOINTERVNVPROC, glgetvertexattribpointervnv); \
    HandleUnsupported(PFNGLISPROGRAMNVPROC, glisprogramnv); \
    HandleUnsupported(PFNGLLOADPROGRAMNVPROC, glloadprogramnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4DNVPROC, glprogramparameter4dnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4DVNVPROC, glprogramparameter4dvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4FNVPROC, glprogramparameter4fnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4FVNVPROC, glprogramparameter4fvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERS4DVNVPROC, glprogramparameters4dvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERS4FVNVPROC, glprogramparameters4fvnv); \
    HandleUnsupported(PFNGLREQUESTRESIDENTPROGRAMSNVPROC, glrequestresidentprogramsnv); \
    HandleUnsupported(PFNGLTRACKMATRIXNVPROC, gltrackmatrixnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBPOINTERNVPROC, glvertexattribpointernv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1DNVPROC, glvertexattrib1dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1DVNVPROC, glvertexattrib1dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1FNVPROC, glvertexattrib1fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1FVNVPROC, glvertexattrib1fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1SNVPROC, glvertexattrib1snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1SVNVPROC, glvertexattrib1svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2DNVPROC, glvertexattrib2dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2DVNVPROC, glvertexattrib2dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2FNVPROC, glvertexattrib2fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2FVNVPROC, glvertexattrib2fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2SNVPROC, glvertexattrib2snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2SVNVPROC, glvertexattrib2svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3DNVPROC, glvertexattrib3dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3DVNVPROC, glvertexattrib3dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3FNVPROC, glvertexattrib3fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3FVNVPROC, glvertexattrib3fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3SNVPROC, glvertexattrib3snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3SVNVPROC, glvertexattrib3svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4DNVPROC, glvertexattrib4dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4DVNVPROC, glvertexattrib4dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4FNVPROC, glvertexattrib4fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4FVNVPROC, glvertexattrib4fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4SNVPROC, glvertexattrib4snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4SVNVPROC, glvertexattrib4svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4UBNVPROC, glvertexattrib4ubnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4UBVNVPROC, glvertexattrib4ubvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1DVNVPROC, glvertexattribs1dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1FVNVPROC, glvertexattribs1fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1SVNVPROC, glvertexattribs1svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2DVNVPROC, glvertexattribs2dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2FVNVPROC, glvertexattribs2fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2SVNVPROC, glvertexattribs2svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3DVNVPROC, glvertexattribs3dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3FVNVPROC, glvertexattribs3fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3SVNVPROC, glvertexattribs3svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4DVNVPROC, glvertexattribs4dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4FVNVPROC, glvertexattribs4fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4SVNVPROC, glvertexattribs4svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4UBVNVPROC, glvertexattribs4ubvnv); \
    HandleUnsupported(PFNGLBEGINVIDEOCAPTURENVPROC, glbeginvideocapturenv); \
    HandleUnsupported(PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC, glbindvideocapturestreambuffernv); \
    HandleUnsupported(PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC, glbindvideocapturestreamtexturenv); \
    HandleUnsupported(PFNGLENDVIDEOCAPTURENVPROC, glendvideocapturenv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTUREIVNVPROC, glgetvideocaptureivnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMIVNVPROC, glgetvideocapturestreamivnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMFVNVPROC, glgetvideocapturestreamfvnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMDVNVPROC, glgetvideocapturestreamdvnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURENVPROC, glvideocapturenv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC, glvideocapturestreamparameterivnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC, glvideocapturestreamparameterfvnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC, glvideocapturestreamparameterdvnv); \
    HandleUnsupported(PFNGLHINTPGIPROC, glhintpgi); \
    HandleUnsupported(PFNGLDETAILTEXFUNCSGISPROC, gldetailtexfuncsgis); \
    HandleUnsupported(PFNGLGETDETAILTEXFUNCSGISPROC, glgetdetailtexfuncsgis); \
    HandleUnsupported(PFNGLFOGFUNCSGISPROC, glfogfuncsgis); \
    HandleUnsupported(PFNGLGETFOGFUNCSGISPROC, glgetfogfuncsgis); \
    HandleUnsupported(PFNGLSAMPLEMASKSGISPROC, glsamplemasksgis); \
    HandleUnsupported(PFNGLSAMPLEPATTERNSGISPROC, glsamplepatternsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERISGISPROC, glpixeltexgenparameterisgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERIVSGISPROC, glpixeltexgenparameterivsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERFSGISPROC, glpixeltexgenparameterfsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERFVSGISPROC, glpixeltexgenparameterfvsgis); \
    HandleUnsupported(PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC, glgetpixeltexgenparameterivsgis); \
    HandleUnsupported(PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC, glgetpixeltexgenparameterfvsgis); \
    HandleUnsupported(PFNGLPOINTPARAMETERFSGISPROC, glpointparameterfsgis); \
    HandleUnsupported(PFNGLPOINTPARAMETERFVSGISPROC, glpointparameterfvsgis); \
    HandleUnsupported(PFNGLSHARPENTEXFUNCSGISPROC, glsharpentexfuncsgis); \
    HandleUnsupported(PFNGLGETSHARPENTEXFUNCSGISPROC, glgetsharpentexfuncsgis); \
    HandleUnsupported(PFNGLTEXIMAGE4DSGISPROC, glteximage4dsgis); \
    HandleUnsupported(PFNGLTEXSUBIMAGE4DSGISPROC, gltexsubimage4dsgis); \
    HandleUnsupported(PFNGLTEXTURECOLORMASKSGISPROC, gltexturecolormasksgis); \
    HandleUnsupported(PFNGLGETTEXFILTERFUNCSGISPROC, glgettexfilterfuncsgis); \
    HandleUnsupported(PFNGLTEXFILTERFUNCSGISPROC, gltexfilterfuncsgis); \
    HandleUnsupported(PFNGLASYNCMARKERSGIXPROC, glasyncmarkersgix); \
    HandleUnsupported(PFNGLFINISHASYNCSGIXPROC, glfinishasyncsgix); \
    HandleUnsupported(PFNGLPOLLASYNCSGIXPROC, glpollasyncsgix); \
    HandleUnsupported(PFNGLGENASYNCMARKERSSGIXPROC, glgenasyncmarkerssgix); \
    HandleUnsupported(PFNGLDELETEASYNCMARKERSSGIXPROC, gldeleteasyncmarkerssgix); \
    HandleUnsupported(PFNGLISASYNCMARKERSGIXPROC, glisasyncmarkersgix); \
    HandleUnsupported(PFNGLFLUSHRASTERSGIXPROC, glflushrastersgix); \
    HandleUnsupported(PFNGLFRAGMENTCOLORMATERIALSGIXPROC, glfragmentcolormaterialsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTFSGIXPROC, glfragmentlightfsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTFVSGIXPROC, glfragmentlightfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTISGIXPROC, glfragmentlightisgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTIVSGIXPROC, glfragmentlightivsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELFSGIXPROC, glfragmentlightmodelfsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELFVSGIXPROC, glfragmentlightmodelfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELISGIXPROC, glfragmentlightmodelisgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELIVSGIXPROC, glfragmentlightmodelivsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALFSGIXPROC, glfragmentmaterialfsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALFVSGIXPROC, glfragmentmaterialfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALISGIXPROC, glfragmentmaterialisgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALIVSGIXPROC, glfragmentmaterialivsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTLIGHTFVSGIXPROC, glgetfragmentlightfvsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTLIGHTIVSGIXPROC, glgetfragmentlightivsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTMATERIALFVSGIXPROC, glgetfragmentmaterialfvsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTMATERIALIVSGIXPROC, glgetfragmentmaterialivsgix); \
    HandleUnsupported(PFNGLLIGHTENVISGIXPROC, gllightenvisgix); \
    HandleUnsupported(PFNGLFRAMEZOOMSGIXPROC, glframezoomsgix); \
    HandleUnsupported(PFNGLIGLOOINTERFACESGIXPROC, gligloointerfacesgix); \
    HandleUnsupported(PFNGLGETINSTRUMENTSSGIXPROC, glgetinstrumentssgix); \
    HandleUnsupported(PFNGLINSTRUMENTSBUFFERSGIXPROC, glinstrumentsbuffersgix); \
    HandleUnsupported(PFNGLPOLLINSTRUMENTSSGIXPROC, glpollinstrumentssgix); \
    HandleUnsupported(PFNGLREADINSTRUMENTSSGIXPROC, glreadinstrumentssgix); \
    HandleUnsupported(PFNGLSTARTINSTRUMENTSSGIXPROC, glstartinstrumentssgix); \
    HandleUnsupported(PFNGLSTOPINSTRUMENTSSGIXPROC, glstopinstrumentssgix); \
    HandleUnsupported(PFNGLGETLISTPARAMETERFVSGIXPROC, glgetlistparameterfvsgix); \
    HandleUnsupported(PFNGLGETLISTPARAMETERIVSGIXPROC, glgetlistparameterivsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERFSGIXPROC, gllistparameterfsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERFVSGIXPROC, gllistparameterfvsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERISGIXPROC, gllistparameterisgix); \
    HandleUnsupported(PFNGLLISTPARAMETERIVSGIXPROC, gllistparameterivsgix); \
    HandleUnsupported(PFNGLPIXELTEXGENSGIXPROC, glpixeltexgensgix); \
    HandleUnsupported(PFNGLDEFORMATIONMAP3DSGIXPROC, gldeformationmap3dsgix); \
    HandleUnsupported(PFNGLDEFORMATIONMAP3FSGIXPROC, gldeformationmap3fsgix); \
    HandleUnsupported(PFNGLDEFORMSGIXPROC, gldeformsgix); \
    HandleUnsupported(PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC, glloadidentitydeformationmapsgix); \
    HandleUnsupported(PFNGLREFERENCEPLANESGIXPROC, glreferenceplanesgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERFSGIXPROC, glspriteparameterfsgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERFVSGIXPROC, glspriteparameterfvsgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERISGIXPROC, glspriteparameterisgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERIVSGIXPROC, glspriteparameterivsgix); \
    HandleUnsupported(PFNGLTAGSAMPLEBUFFERSGIXPROC, gltagsamplebuffersgix); \
    HandleUnsupported(PFNGLCOLORTABLESGIPROC, glcolortablesgi); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERFVSGIPROC, glcolortableparameterfvsgi); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERIVSGIPROC, glcolortableparameterivsgi); \
    HandleUnsupported(PFNGLCOPYCOLORTABLESGIPROC, glcopycolortablesgi); \
    HandleUnsupported(PFNGLGETCOLORTABLESGIPROC, glgetcolortablesgi); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVSGIPROC, glgetcolortableparameterfvsgi); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVSGIPROC, glgetcolortableparameterivsgi); \
    HandleUnsupported(PFNGLFINISHTEXTURESUNXPROC, glfinishtexturesunx); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORBSUNPROC, glglobalalphafactorbsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORSSUNPROC, glglobalalphafactorssun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORISUNPROC, glglobalalphafactorisun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORFSUNPROC, glglobalalphafactorfsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORDSUNPROC, glglobalalphafactordsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUBSUNPROC, glglobalalphafactorubsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUSSUNPROC, glglobalalphafactorussun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUISUNPROC, glglobalalphafactoruisun); \
    HandleUnsupported(PFNGLDRAWMESHARRAYSSUNPROC, gldrawmesharrayssun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUISUNPROC, glreplacementcodeuisun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUSSUNPROC, glreplacementcodeussun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUBSUNPROC, glreplacementcodeubsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVSUNPROC, glreplacementcodeuivsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUSVSUNPROC, glreplacementcodeusvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUBVSUNPROC, glreplacementcodeubvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEPOINTERSUNPROC, glreplacementcodepointersun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX2FSUNPROC, glcolor4ubvertex2fsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX2FVSUNPROC, glcolor4ubvertex2fvsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX3FSUNPROC, glcolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX3FVSUNPROC, glcolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLCOLOR3FVERTEX3FSUNPROC, glcolor3fvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR3FVERTEX3FVSUNPROC, glcolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLNORMAL3FVERTEX3FSUNPROC, glnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLNORMAL3FVERTEX3FVSUNPROC, glnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC, glcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC, glcolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FVERTEX3FSUNPROC, gltexcoord2fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FVERTEX3FVSUNPROC, gltexcoord2fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD4FVERTEX4FSUNPROC, gltexcoord4fvertex4fsun); \
    HandleUnsupported(PFNGLTEXCOORD4FVERTEX4FVSUNPROC, gltexcoord4fvertex4fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC, gltexcoord2fcolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC, gltexcoord2fcolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC, gltexcoord2fcolor3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC, gltexcoord2fcolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC, gltexcoord2fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC, gltexcoord2fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC, gltexcoord2fcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC, gltexcoord2fcolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC, gltexcoord4fcolor4fnormal3fvertex4fsun); \
    HandleUnsupported(PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC, gltexcoord4fcolor4fnormal3fvertex4fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC, glreplacementcodeuivertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC, glreplacementcodeuivertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC, glreplacementcodeuicolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC, glreplacementcodeuicolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC, glreplacementcodeuicolor3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC, glreplacementcodeuicolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC, glreplacementcodeuinormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuinormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuicolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuicolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLGETPOINTERVKHRPROC, glgetpointervkhr); \
    HandleUnsupported(PFNGLGETGRAPHICSRESETSTATUSKHRPROC, glgetgraphicsresetstatuskhr); \
    HandleUnsupported(PFNGLREADNPIXELSKHRPROC, glreadnpixelskhr); \
    HandleUnsupported(PFNGLGETNUNIFORMFVKHRPROC, glgetnuniformfvkhr); \
    HandleUnsupported(PFNGLGETNUNIFORMIVKHRPROC, glgetnuniformivkhr); \
    HandleUnsupported(PFNGLGETNUNIFORMUIVKHRPROC, glgetnuniformuivkhr); \
    HandleUnsupported(PFNGLEGLIMAGETARGETTEXTURE2DOESPROC, gleglimagetargettexture2does); \
    HandleUnsupported(PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC, gleglimagetargetrenderbufferstorageoes); \
    HandleUnsupported(PFNGLENABLEIOESPROC, glenableioes); \
    HandleUnsupported(PFNGLDISABLEIOESPROC, gldisableioes); \
    HandleUnsupported(PFNGLBLENDEQUATIONIOESPROC, glblendequationioes); \
    HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEIOESPROC, glblendequationseparateioes); \
    HandleUnsupported(PFNGLBLENDFUNCIOESPROC, glblendfuncioes); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEIOESPROC, glblendfuncseparateioes); \
    HandleUnsupported(PFNGLCOLORMASKIOESPROC, glcolormaskioes); \
    HandleUnsupported(PFNGLISENABLEDIOESPROC, glisenabledioes); \
    HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC, gldrawelementsinstancedbasevertexoes); \
    HandleUnsupported(PFNGLGETPROGRAMBINARYOESPROC, glgetprogrambinaryoes); \
    HandleUnsupported(PFNGLPROGRAMBINARYOESPROC, glprogrambinaryoes); \
    HandleUnsupported(PFNGLTEXTUREVIEWOESPROC, gltextureviewoes); \
    HandleUnsupported(PFNGLVIEWPORTARRAYVOESPROC, glviewportarrayvoes); \
    HandleUnsupported(PFNGLVIEWPORTINDEXEDFOESPROC, glviewportindexedfoes); \
    HandleUnsupported(PFNGLVIEWPORTINDEXEDFVOESPROC, glviewportindexedfvoes); \
    HandleUnsupported(PFNGLSCISSORARRAYVOESPROC, glscissorarrayvoes); \
    HandleUnsupported(PFNGLSCISSORINDEXEDOESPROC, glscissorindexedoes); \
    HandleUnsupported(PFNGLSCISSORINDEXEDVOESPROC, glscissorindexedvoes); \
    HandleUnsupported(PFNGLDEPTHRANGEARRAYFVOESPROC, gldepthrangearrayfvoes); \
    HandleUnsupported(PFNGLDEPTHRANGEINDEXEDFOESPROC, gldepthrangeindexedfoes); \
    HandleUnsupported(PFNGLGETFLOATI_VOESPROC, glgetfloati_voes); \
    HandleUnsupported(PFNGLBLITFRAMEBUFFERANGLEPROC, glblitframebufferangle); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC, glrenderbufferstoragemultisampleangle); \
    HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDANGLEPROC, gldrawarraysinstancedangle); \
    HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDANGLEPROC, gldrawelementsinstancedangle); \
    HandleUnsupported(PFNGLVERTEXATTRIBDIVISORANGLEPROC, glvertexattribdivisorangle); \
    HandleUnsupported(PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC, glgettranslatedshadersourceangle); \
    HandleUnsupported(PFNGLCOPYTEXTURELEVELSAPPLEPROC, glcopytexturelevelsapple); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC, glrenderbufferstoragemultisampleapple); \
    HandleUnsupported(PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC, glresolvemultisampleframebufferapple); \
    HandleUnsupported(PFNGLFENCESYNCAPPLEPROC, glfencesyncapple); \
    HandleUnsupported(PFNGLISSYNCAPPLEPROC, glissyncapple); \
    HandleUnsupported(PFNGLDELETESYNCAPPLEPROC, gldeletesyncapple); \
    HandleUnsupported(PFNGLCLIENTWAITSYNCAPPLEPROC, glclientwaitsyncapple); \
    HandleUnsupported(PFNGLWAITSYNCAPPLEPROC, glwaitsyncapple); \
    HandleUnsupported(PFNGLGETINTEGER64VAPPLEPROC, glgetinteger64vapple); \
    HandleUnsupported(PFNGLGETSYNCIVAPPLEPROC, glgetsyncivapple); \
    HandleUnsupported(PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC, glbindfragdatalocationindexedext); \
    HandleUnsupported(PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC, glgetprogramresourcelocationindexext); \
    HandleUnsupported(PFNGLGETFRAGDATAINDEXEXTPROC, glgetfragdataindexext); \
    HandleUnsupported(PFNGLBUFFERSTORAGEEXTPROC, glbufferstorageext); \
    HandleUnsupported(PFNGLCLEARTEXIMAGEEXTPROC, glclearteximageext); \
    HandleUnsupported(PFNGLCLEARTEXSUBIMAGEEXTPROC, glcleartexsubimageext); \
    HandleUnsupported(PFNGLDRAWTRANSFORMFEEDBACKEXTPROC, gldrawtransformfeedbackext); \
    HandleUnsupported(PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC, gldrawtransformfeedbackinstancedext); \
    HandleUnsupported(PFNGLVERTEXATTRIBDIVISOREXTPROC, glvertexattribdivisorext); \
    HandleUnsupported(PFNGLMAPBUFFERRANGEEXTPROC, glmapbufferrangeext); \
    HandleUnsupported(PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC, glflushmappedbufferrangeext); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC, glmultidrawarraysindirectext); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC, glmultidrawelementsindirectext); \
    HandleUnsupported(PFNGLREADBUFFERINDEXEDEXTPROC, glreadbufferindexedext); \
    HandleUnsupported(PFNGLDRAWBUFFERSINDEXEDEXTPROC, gldrawbuffersindexedext); \
    HandleUnsupported(PFNGLGETINTEGERI_VEXTPROC, glgetintegeri_vext); \
    HandleUnsupported(PFNGLGETGRAPHICSRESETSTATUSEXTPROC, glgetgraphicsresetstatusext); \
    HandleUnsupported(PFNGLREADNPIXELSEXTPROC, glreadnpixelsext); \
    HandleUnsupported(PFNGLGETNUNIFORMFVEXTPROC, glgetnuniformfvext); \
    HandleUnsupported(PFNGLGETNUNIFORMIVEXTPROC, glgetnuniformivext); \
    HandleUnsupported(PFNGLACTIVESHADERPROGRAMEXTPROC, glactiveshaderprogramext); \
    HandleUnsupported(PFNGLBINDPROGRAMPIPELINEEXTPROC, glbindprogrampipelineext); \
    HandleUnsupported(PFNGLCREATESHADERPROGRAMVEXTPROC, glcreateshaderprogramvext); \
    HandleUnsupported(PFNGLDELETEPROGRAMPIPELINESEXTPROC, gldeleteprogrampipelinesext); \
    HandleUnsupported(PFNGLGENPROGRAMPIPELINESEXTPROC, glgenprogrampipelinesext); \
    HandleUnsupported(PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC, glgetprogrampipelineinfologext); \
    HandleUnsupported(PFNGLGETPROGRAMPIPELINEIVEXTPROC, glgetprogrampipelineivext); \
    HandleUnsupported(PFNGLISPROGRAMPIPELINEEXTPROC, glisprogrampipelineext); \
    HandleUnsupported(PFNGLUSEPROGRAMSTAGESEXTPROC, gluseprogramstagesext); \
    HandleUnsupported(PFNGLVALIDATEPROGRAMPIPELINEEXTPROC, glvalidateprogrampipelineext); \
    HandleUnsupported(PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC, glframebufferpixellocalstoragesizeext); \
    HandleUnsupported(PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC, glgetframebufferpixellocalstoragesizeext); \
    HandleUnsupported(PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC, glclearpixellocalstorageuiext); \
    HandleUnsupported(PFNGLTEXPAGECOMMITMENTEXTPROC, gltexpagecommitmentext); \
    HandleUnsupported(PFNGLTEXSTORAGE1DEXTPROC, gltexstorage1dext); \
    HandleUnsupported(PFNGLTEXSTORAGE2DEXTPROC, gltexstorage2dext); \
    HandleUnsupported(PFNGLTEXSTORAGE3DEXTPROC, gltexstorage3dext); \
    HandleUnsupported(PFNGLTEXTUREVIEWEXTPROC, gltextureviewext); \
    HandleUnsupported(PFNGLWINDOWRECTANGLESEXTPROC, glwindowrectanglesext); \
    HandleUnsupported(PFNGLGETTEXTUREHANDLEIMGPROC, glgettexturehandleimg); \
    HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEIMGPROC, glgettexturesamplerhandleimg); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64IMGPROC, gluniformhandleui64img); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64VIMGPROC, gluniformhandleui64vimg); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC, glprogramuniformhandleui64img); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC, glprogramuniformhandleui64vimg); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC, glframebuffertexture2ddownsampleimg); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC, glframebuffertexturelayerdownsampleimg); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC, glrenderbufferstoragemultisampleimg); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC, glframebuffertexture2dmultisampleimg); \
    HandleUnsupported(PFNGLCONSERVATIVERASTERPARAMETERINVPROC, glconservativerasterparameterinv); \
    HandleUnsupported(PFNGLCOPYBUFFERSUBDATANVPROC, glcopybuffersubdatanv); \
    HandleUnsupported(PFNGLCOVERAGEMASKNVPROC, glcoveragemasknv); \
    HandleUnsupported(PFNGLCOVERAGEOPERATIONNVPROC, glcoverageoperationnv); \
    HandleUnsupported(PFNGLDRAWBUFFERSNVPROC, gldrawbuffersnv); \
    HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDNVPROC, gldrawarraysinstancednv); \
    HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDNVPROC, gldrawelementsinstancednv); \
    HandleUnsupported(PFNGLDRAWVKIMAGENVPROC, gldrawvkimagenv); \
    HandleUnsupported(PFNGLGETVKPROCADDRNVPROC, glgetvkprocaddrnv); \
    HandleUnsupported(PFNGLWAITVKSEMAPHORENVPROC, glwaitvksemaphorenv); \
    HandleUnsupported(PFNGLSIGNALVKSEMAPHORENVPROC, glsignalvksemaphorenv); \
    HandleUnsupported(PFNGLSIGNALVKFENCENVPROC, glsignalvkfencenv); \
    HandleUnsupported(PFNGLBLITFRAMEBUFFERNVPROC, glblitframebuffernv); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC, glrenderbufferstoragemultisamplenv); \
    HandleUnsupported(PFNGLVERTEXATTRIBDIVISORNVPROC, glvertexattribdivisornv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX2X3FVNVPROC, gluniformmatrix2x3fvnv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX3X2FVNVPROC, gluniformmatrix3x2fvnv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX2X4FVNVPROC, gluniformmatrix2x4fvnv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX4X2FVNVPROC, gluniformmatrix4x2fvnv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX3X4FVNVPROC, gluniformmatrix3x4fvnv); \
    HandleUnsupported(PFNGLUNIFORMMATRIX4X3FVNVPROC, gluniformmatrix4x3fvnv); \
    HandleUnsupported(PFNGLPOLYGONMODENVPROC, glpolygonmodenv); \
    HandleUnsupported(PFNGLREADBUFFERNVPROC, glreadbuffernv); \
    HandleUnsupported(PFNGLVIEWPORTARRAYVNVPROC, glviewportarrayvnv); \
    HandleUnsupported(PFNGLVIEWPORTINDEXEDFNVPROC, glviewportindexedfnv); \
    HandleUnsupported(PFNGLVIEWPORTINDEXEDFVNVPROC, glviewportindexedfvnv); \
    HandleUnsupported(PFNGLSCISSORARRAYVNVPROC, glscissorarrayvnv); \
    HandleUnsupported(PFNGLSCISSORINDEXEDNVPROC, glscissorindexednv); \
    HandleUnsupported(PFNGLSCISSORINDEXEDVNVPROC, glscissorindexedvnv); \
    HandleUnsupported(PFNGLDEPTHRANGEARRAYFVNVPROC, gldepthrangearrayfvnv); \
    HandleUnsupported(PFNGLDEPTHRANGEINDEXEDFNVPROC, gldepthrangeindexedfnv); \
    HandleUnsupported(PFNGLGETFLOATI_VNVPROC, glgetfloati_vnv); \
    HandleUnsupported(PFNGLENABLEINVPROC, glenableinv); \
    HandleUnsupported(PFNGLDISABLEINVPROC, gldisableinv); \
    HandleUnsupported(PFNGLISENABLEDINVPROC, glisenabledinv); \
    HandleUnsupported(PFNGLVIEWPORTSWIZZLENVPROC, glviewportswizzlenv); \
    HandleUnsupported(PFNGLALPHAFUNCQCOMPROC, glalphafuncqcom); \
    HandleUnsupported(PFNGLGETDRIVERCONTROLSQCOMPROC, glgetdrivercontrolsqcom); \
    HandleUnsupported(PFNGLGETDRIVERCONTROLSTRINGQCOMPROC, glgetdrivercontrolstringqcom); \
    HandleUnsupported(PFNGLENABLEDRIVERCONTROLQCOMPROC, glenabledrivercontrolqcom); \
    HandleUnsupported(PFNGLDISABLEDRIVERCONTROLQCOMPROC, gldisabledrivercontrolqcom); \
    HandleUnsupported(PFNGLEXTGETTEXTURESQCOMPROC, glextgettexturesqcom); \
    HandleUnsupported(PFNGLEXTGETBUFFERSQCOMPROC, glextgetbuffersqcom); \
    HandleUnsupported(PFNGLEXTGETRENDERBUFFERSQCOMPROC, glextgetrenderbuffersqcom); \
    HandleUnsupported(PFNGLEXTGETFRAMEBUFFERSQCOMPROC, glextgetframebuffersqcom); \
    HandleUnsupported(PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC, glextgettexlevelparameterivqcom); \
    HandleUnsupported(PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC, glexttexobjectstateoverrideiqcom); \
    HandleUnsupported(PFNGLEXTGETTEXSUBIMAGEQCOMPROC, glextgettexsubimageqcom); \
    HandleUnsupported(PFNGLEXTGETBUFFERPOINTERVQCOMPROC, glextgetbufferpointervqcom); \
    HandleUnsupported(PFNGLEXTGETSHADERSQCOMPROC, glextgetshadersqcom); \
    HandleUnsupported(PFNGLEXTGETPROGRAMSQCOMPROC, glextgetprogramsqcom); \
    HandleUnsupported(PFNGLEXTISPROGRAMBINARYQCOMPROC, glextisprogrambinaryqcom); \
    HandleUnsupported(PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC, glextgetprogrambinarysourceqcom); \
    HandleUnsupported(PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC, glframebufferfoveationconfigqcom); \
    HandleUnsupported(PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC, glframebufferfoveationparametersqcom); \
    HandleUnsupported(PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC, glframebufferfetchbarrierqcom); \
    HandleUnsupported(PFNGLSTARTTILINGQCOMPROC, glstarttilingqcom); \
    HandleUnsupported(PFNGLENDTILINGQCOMPROC, glendtilingqcom); \
    HandleUnsupported(PFNGLNEWLISTPROC, glnewlist); \
    HandleUnsupported(PFNGLENDLISTPROC, glendlist); \
    HandleUnsupported(PFNGLCALLLISTPROC, glcalllist); \
    HandleUnsupported(PFNGLCALLLISTSPROC, glcalllists); \
    HandleUnsupported(PFNGLDELETELISTSPROC, gldeletelists); \
    HandleUnsupported(PFNGLGENLISTSPROC, glgenlists); \
    HandleUnsupported(PFNGLLISTBASEPROC, gllistbase); \
    HandleUnsupported(PFNGLBEGINPROC, glbegin); \
    HandleUnsupported(PFNGLBITMAPPROC, glbitmap); \
    HandleUnsupported(PFNGLCOLOR3BPROC, glcolor3b); \
    HandleUnsupported(PFNGLCOLOR3BVPROC, glcolor3bv); \
    HandleUnsupported(PFNGLCOLOR3DPROC, glcolor3d); \
    HandleUnsupported(PFNGLCOLOR3DVPROC, glcolor3dv); \
    HandleUnsupported(PFNGLCOLOR3FPROC, glcolor3f); \
    HandleUnsupported(PFNGLCOLOR3FVPROC, glcolor3fv); \
    HandleUnsupported(PFNGLCOLOR3IPROC, glcolor3i); \
    HandleUnsupported(PFNGLCOLOR3IVPROC, glcolor3iv); \
    HandleUnsupported(PFNGLCOLOR3SPROC, glcolor3s); \
    HandleUnsupported(PFNGLCOLOR3SVPROC, glcolor3sv); \
    HandleUnsupported(PFNGLCOLOR3UBPROC, glcolor3ub); \
    HandleUnsupported(PFNGLCOLOR3UBVPROC, glcolor3ubv); \
    HandleUnsupported(PFNGLCOLOR3UIPROC, glcolor3ui); \
    HandleUnsupported(PFNGLCOLOR3UIVPROC, glcolor3uiv); \
    HandleUnsupported(PFNGLCOLOR3USPROC, glcolor3us); \
    HandleUnsupported(PFNGLCOLOR3USVPROC, glcolor3usv); \
    HandleUnsupported(PFNGLCOLOR4BPROC, glcolor4b); \
    HandleUnsupported(PFNGLCOLOR4BVPROC, glcolor4bv); \
    HandleUnsupported(PFNGLCOLOR4DPROC, glcolor4d); \
    HandleUnsupported(PFNGLCOLOR4DVPROC, glcolor4dv); \
    HandleUnsupported(PFNGLCOLOR4FPROC, glcolor4f); \
    HandleUnsupported(PFNGLCOLOR4FVPROC, glcolor4fv); \
    HandleUnsupported(PFNGLCOLOR4IPROC, glcolor4i); \
    HandleUnsupported(PFNGLCOLOR4IVPROC, glcolor4iv); \
    HandleUnsupported(PFNGLCOLOR4SPROC, glcolor4s); \
    HandleUnsupported(PFNGLCOLOR4SVPROC, glcolor4sv); \
    HandleUnsupported(PFNGLCOLOR4UBPROC, glcolor4ub); \
    HandleUnsupported(PFNGLCOLOR4UBVPROC, glcolor4ubv); \
    HandleUnsupported(PFNGLCOLOR4UIPROC, glcolor4ui); \
    HandleUnsupported(PFNGLCOLOR4UIVPROC, glcolor4uiv); \
    HandleUnsupported(PFNGLCOLOR4USPROC, glcolor4us); \
    HandleUnsupported(PFNGLCOLOR4USVPROC, glcolor4usv); \
    HandleUnsupported(PFNGLEDGEFLAGPROC, gledgeflag); \
    HandleUnsupported(PFNGLEDGEFLAGVPROC, gledgeflagv); \
    HandleUnsupported(PFNGLENDPROC, glend); \
    HandleUnsupported(PFNGLINDEXDPROC, glindexd); \
    HandleUnsupported(PFNGLINDEXDVPROC, glindexdv); \
    HandleUnsupported(PFNGLINDEXFPROC, glindexf); \
    HandleUnsupported(PFNGLINDEXFVPROC, glindexfv); \
    HandleUnsupported(PFNGLINDEXIPROC, glindexi); \
    HandleUnsupported(PFNGLINDEXIVPROC, glindexiv); \
    HandleUnsupported(PFNGLINDEXSPROC, glindexs); \
    HandleUnsupported(PFNGLINDEXSVPROC, glindexsv); \
    HandleUnsupported(PFNGLNORMAL3BPROC, glnormal3b); \
    HandleUnsupported(PFNGLNORMAL3BVPROC, glnormal3bv); \
    HandleUnsupported(PFNGLNORMAL3DPROC, glnormal3d); \
    HandleUnsupported(PFNGLNORMAL3DVPROC, glnormal3dv); \
    HandleUnsupported(PFNGLNORMAL3FPROC, glnormal3f); \
    HandleUnsupported(PFNGLNORMAL3FVPROC, glnormal3fv); \
    HandleUnsupported(PFNGLNORMAL3IPROC, glnormal3i); \
    HandleUnsupported(PFNGLNORMAL3IVPROC, glnormal3iv); \
    HandleUnsupported(PFNGLNORMAL3SPROC, glnormal3s); \
    HandleUnsupported(PFNGLNORMAL3SVPROC, glnormal3sv); \
    HandleUnsupported(PFNGLRASTERPOS2DPROC, glrasterpos2d); \
    HandleUnsupported(PFNGLRASTERPOS2DVPROC, glrasterpos2dv); \
    HandleUnsupported(PFNGLRASTERPOS2FPROC, glrasterpos2f); \
    HandleUnsupported(PFNGLRASTERPOS2FVPROC, glrasterpos2fv); \
    HandleUnsupported(PFNGLRASTERPOS2IPROC, glrasterpos2i); \
    HandleUnsupported(PFNGLRASTERPOS2IVPROC, glrasterpos2iv); \
    HandleUnsupported(PFNGLRASTERPOS2SPROC, glrasterpos2s); \
    HandleUnsupported(PFNGLRASTERPOS2SVPROC, glrasterpos2sv); \
    HandleUnsupported(PFNGLRASTERPOS3DPROC, glrasterpos3d); \
    HandleUnsupported(PFNGLRASTERPOS3DVPROC, glrasterpos3dv); \
    HandleUnsupported(PFNGLRASTERPOS3FPROC, glrasterpos3f); \
    HandleUnsupported(PFNGLRASTERPOS3FVPROC, glrasterpos3fv); \
    HandleUnsupported(PFNGLRASTERPOS3IPROC, glrasterpos3i); \
    HandleUnsupported(PFNGLRASTERPOS3IVPROC, glrasterpos3iv); \
    HandleUnsupported(PFNGLRASTERPOS3SPROC, glrasterpos3s); \
    HandleUnsupported(PFNGLRASTERPOS3SVPROC, glrasterpos3sv); \
    HandleUnsupported(PFNGLRASTERPOS4DPROC, glrasterpos4d); \
    HandleUnsupported(PFNGLRASTERPOS4DVPROC, glrasterpos4dv); \
    HandleUnsupported(PFNGLRASTERPOS4FPROC, glrasterpos4f); \
    HandleUnsupported(PFNGLRASTERPOS4FVPROC, glrasterpos4fv); \
    HandleUnsupported(PFNGLRASTERPOS4IPROC, glrasterpos4i); \
    HandleUnsupported(PFNGLRASTERPOS4IVPROC, glrasterpos4iv); \
    HandleUnsupported(PFNGLRASTERPOS4SPROC, glrasterpos4s); \
    HandleUnsupported(PFNGLRASTERPOS4SVPROC, glrasterpos4sv); \
    HandleUnsupported(PFNGLRECTDPROC, glrectd); \
    HandleUnsupported(PFNGLRECTDVPROC, glrectdv); \
    HandleUnsupported(PFNGLRECTFPROC, glrectf); \
    HandleUnsupported(PFNGLRECTFVPROC, glrectfv); \
    HandleUnsupported(PFNGLRECTIPROC, glrecti); \
    HandleUnsupported(PFNGLRECTIVPROC, glrectiv); \
    HandleUnsupported(PFNGLRECTSPROC, glrects); \
    HandleUnsupported(PFNGLRECTSVPROC, glrectsv); \
    HandleUnsupported(PFNGLTEXCOORD1DPROC, gltexcoord1d); \
    HandleUnsupported(PFNGLTEXCOORD1DVPROC, gltexcoord1dv); \
    HandleUnsupported(PFNGLTEXCOORD1FPROC, gltexcoord1f); \
    HandleUnsupported(PFNGLTEXCOORD1FVPROC, gltexcoord1fv); \
    HandleUnsupported(PFNGLTEXCOORD1IPROC, gltexcoord1i); \
    HandleUnsupported(PFNGLTEXCOORD1IVPROC, gltexcoord1iv); \
    HandleUnsupported(PFNGLTEXCOORD1SPROC, gltexcoord1s); \
    HandleUnsupported(PFNGLTEXCOORD1SVPROC, gltexcoord1sv); \
    HandleUnsupported(PFNGLTEXCOORD2DPROC, gltexcoord2d); \
    HandleUnsupported(PFNGLTEXCOORD2DVPROC, gltexcoord2dv); \
    HandleUnsupported(PFNGLTEXCOORD2FPROC, gltexcoord2f); \
    HandleUnsupported(PFNGLTEXCOORD2FVPROC, gltexcoord2fv); \
    HandleUnsupported(PFNGLTEXCOORD2IPROC, gltexcoord2i); \
    HandleUnsupported(PFNGLTEXCOORD2IVPROC, gltexcoord2iv); \
    HandleUnsupported(PFNGLTEXCOORD2SPROC, gltexcoord2s); \
    HandleUnsupported(PFNGLTEXCOORD2SVPROC, gltexcoord2sv); \
    HandleUnsupported(PFNGLTEXCOORD3DPROC, gltexcoord3d); \
    HandleUnsupported(PFNGLTEXCOORD3DVPROC, gltexcoord3dv); \
    HandleUnsupported(PFNGLTEXCOORD3FPROC, gltexcoord3f); \
    HandleUnsupported(PFNGLTEXCOORD3FVPROC, gltexcoord3fv); \
    HandleUnsupported(PFNGLTEXCOORD3IPROC, gltexcoord3i); \
    HandleUnsupported(PFNGLTEXCOORD3IVPROC, gltexcoord3iv); \
    HandleUnsupported(PFNGLTEXCOORD3SPROC, gltexcoord3s); \
    HandleUnsupported(PFNGLTEXCOORD3SVPROC, gltexcoord3sv); \
    HandleUnsupported(PFNGLTEXCOORD4DPROC, gltexcoord4d); \
    HandleUnsupported(PFNGLTEXCOORD4DVPROC, gltexcoord4dv); \
    HandleUnsupported(PFNGLTEXCOORD4FPROC, gltexcoord4f); \
    HandleUnsupported(PFNGLTEXCOORD4FVPROC, gltexcoord4fv); \
    HandleUnsupported(PFNGLTEXCOORD4IPROC, gltexcoord4i); \
    HandleUnsupported(PFNGLTEXCOORD4IVPROC, gltexcoord4iv); \
    HandleUnsupported(PFNGLTEXCOORD4SPROC, gltexcoord4s); \
    HandleUnsupported(PFNGLTEXCOORD4SVPROC, gltexcoord4sv); \
    HandleUnsupported(PFNGLVERTEX2DPROC, glvertex2d); \
    HandleUnsupported(PFNGLVERTEX2DVPROC, glvertex2dv); \
    HandleUnsupported(PFNGLVERTEX2FPROC, glvertex2f); \
    HandleUnsupported(PFNGLVERTEX2FVPROC, glvertex2fv); \
    HandleUnsupported(PFNGLVERTEX2IPROC, glvertex2i); \
    HandleUnsupported(PFNGLVERTEX2IVPROC, glvertex2iv); \
    HandleUnsupported(PFNGLVERTEX2SPROC, glvertex2s); \
    HandleUnsupported(PFNGLVERTEX2SVPROC, glvertex2sv); \
    HandleUnsupported(PFNGLVERTEX3DPROC, glvertex3d); \
    HandleUnsupported(PFNGLVERTEX3DVPROC, glvertex3dv); \
    HandleUnsupported(PFNGLVERTEX3FPROC, glvertex3f); \
    HandleUnsupported(PFNGLVERTEX3FVPROC, glvertex3fv); \
    HandleUnsupported(PFNGLVERTEX3IPROC, glvertex3i); \
    HandleUnsupported(PFNGLVERTEX3IVPROC, glvertex3iv); \
    HandleUnsupported(PFNGLVERTEX3SPROC, glvertex3s); \
    HandleUnsupported(PFNGLVERTEX3SVPROC, glvertex3sv); \
    HandleUnsupported(PFNGLVERTEX4DPROC, glvertex4d); \
    HandleUnsupported(PFNGLVERTEX4DVPROC, glvertex4dv); \
    HandleUnsupported(PFNGLVERTEX4FPROC, glvertex4f); \
    HandleUnsupported(PFNGLVERTEX4FVPROC, glvertex4fv); \
    HandleUnsupported(PFNGLVERTEX4IPROC, glvertex4i); \
    HandleUnsupported(PFNGLVERTEX4IVPROC, glvertex4iv); \
    HandleUnsupported(PFNGLVERTEX4SPROC, glvertex4s); \
    HandleUnsupported(PFNGLVERTEX4SVPROC, glvertex4sv); \
    HandleUnsupported(PFNGLCLIPPLANEPROC, glclipplane); \
    HandleUnsupported(PFNGLCOLORMATERIALPROC, glcolormaterial); \
    HandleUnsupported(PFNGLFOGFPROC, glfogf); \
    HandleUnsupported(PFNGLFOGFVPROC, glfogfv); \
    HandleUnsupported(PFNGLFOGIPROC, glfogi); \
    HandleUnsupported(PFNGLFOGIVPROC, glfogiv); \
    HandleUnsupported(PFNGLLIGHTFPROC, gllightf); \
    HandleUnsupported(PFNGLLIGHTFVPROC, gllightfv); \
    HandleUnsupported(PFNGLLIGHTIPROC, gllighti); \
    HandleUnsupported(PFNGLLIGHTIVPROC, gllightiv); \
    HandleUnsupported(PFNGLLIGHTMODELFPROC, gllightmodelf); \
    HandleUnsupported(PFNGLLIGHTMODELFVPROC, gllightmodelfv); \
    HandleUnsupported(PFNGLLIGHTMODELIPROC, gllightmodeli); \
    HandleUnsupported(PFNGLLIGHTMODELIVPROC, gllightmodeliv); \
    HandleUnsupported(PFNGLLINESTIPPLEPROC, gllinestipple); \
    HandleUnsupported(PFNGLMATERIALFPROC, glmaterialf); \
    HandleUnsupported(PFNGLMATERIALFVPROC, glmaterialfv); \
    HandleUnsupported(PFNGLMATERIALIPROC, glmateriali); \
    HandleUnsupported(PFNGLMATERIALIVPROC, glmaterialiv); \
    HandleUnsupported(PFNGLPOLYGONSTIPPLEPROC, glpolygonstipple); \
    HandleUnsupported(PFNGLSHADEMODELPROC, glshademodel); \
    HandleUnsupported(PFNGLTEXENVFPROC, gltexenvf); \
    HandleUnsupported(PFNGLTEXENVFVPROC, gltexenvfv); \
    HandleUnsupported(PFNGLTEXENVIPROC, gltexenvi); \
    HandleUnsupported(PFNGLTEXENVIVPROC, gltexenviv); \
    HandleUnsupported(PFNGLTEXGENDPROC, gltexgend); \
    HandleUnsupported(PFNGLTEXGENDVPROC, gltexgendv); \
    HandleUnsupported(PFNGLTEXGENFPROC, gltexgenf); \
    HandleUnsupported(PFNGLTEXGENFVPROC, gltexgenfv); \
    HandleUnsupported(PFNGLTEXGENIPROC, gltexgeni); \
    HandleUnsupported(PFNGLTEXGENIVPROC, gltexgeniv); \
    HandleUnsupported(PFNGLFEEDBACKBUFFERPROC, glfeedbackbuffer); \
    HandleUnsupported(PFNGLSELECTBUFFERPROC, glselectbuffer); \
    HandleUnsupported(PFNGLRENDERMODEPROC, glrendermode); \
    HandleUnsupported(PFNGLINITNAMESPROC, glinitnames); \
    HandleUnsupported(PFNGLLOADNAMEPROC, glloadname); \
    HandleUnsupported(PFNGLPASSTHROUGHPROC, glpassthrough); \
    HandleUnsupported(PFNGLPOPNAMEPROC, glpopname); \
    HandleUnsupported(PFNGLPUSHNAMEPROC, glpushname); \
    HandleUnsupported(PFNGLCLEARACCUMPROC, glclearaccum); \
    HandleUnsupported(PFNGLCLEARINDEXPROC, glclearindex); \
    HandleUnsupported(PFNGLINDEXMASKPROC, glindexmask); \
    HandleUnsupported(PFNGLACCUMPROC, glaccum); \
    HandleUnsupported(PFNGLPOPATTRIBPROC, glpopattrib); \
    HandleUnsupported(PFNGLPUSHATTRIBPROC, glpushattrib); \
    HandleUnsupported(PFNGLMAP1DPROC, glmap1d); \
    HandleUnsupported(PFNGLMAP1FPROC, glmap1f); \
    HandleUnsupported(PFNGLMAP2DPROC, glmap2d); \
    HandleUnsupported(PFNGLMAP2FPROC, glmap2f); \
    HandleUnsupported(PFNGLMAPGRID1DPROC, glmapgrid1d); \
    HandleUnsupported(PFNGLMAPGRID1FPROC, glmapgrid1f); \
    HandleUnsupported(PFNGLMAPGRID2DPROC, glmapgrid2d); \
    HandleUnsupported(PFNGLMAPGRID2FPROC, glmapgrid2f); \
    HandleUnsupported(PFNGLEVALCOORD1DPROC, glevalcoord1d); \
    HandleUnsupported(PFNGLEVALCOORD1DVPROC, glevalcoord1dv); \
    HandleUnsupported(PFNGLEVALCOORD1FPROC, glevalcoord1f); \
    HandleUnsupported(PFNGLEVALCOORD1FVPROC, glevalcoord1fv); \
    HandleUnsupported(PFNGLEVALCOORD2DPROC, glevalcoord2d); \
    HandleUnsupported(PFNGLEVALCOORD2DVPROC, glevalcoord2dv); \
    HandleUnsupported(PFNGLEVALCOORD2FPROC, glevalcoord2f); \
    HandleUnsupported(PFNGLEVALCOORD2FVPROC, glevalcoord2fv); \
    HandleUnsupported(PFNGLEVALMESH1PROC, glevalmesh1); \
    HandleUnsupported(PFNGLEVALPOINT1PROC, glevalpoint1); \
    HandleUnsupported(PFNGLEVALMESH2PROC, glevalmesh2); \
    HandleUnsupported(PFNGLEVALPOINT2PROC, glevalpoint2); \
    HandleUnsupported(PFNGLALPHAFUNCPROC, glalphafunc); \
    HandleUnsupported(PFNGLPIXELZOOMPROC, glpixelzoom); \
    HandleUnsupported(PFNGLPIXELTRANSFERFPROC, glpixeltransferf); \
    HandleUnsupported(PFNGLPIXELTRANSFERIPROC, glpixeltransferi); \
    HandleUnsupported(PFNGLPIXELMAPFVPROC, glpixelmapfv); \
    HandleUnsupported(PFNGLPIXELMAPUIVPROC, glpixelmapuiv); \
    HandleUnsupported(PFNGLPIXELMAPUSVPROC, glpixelmapusv); \
    HandleUnsupported(PFNGLCOPYPIXELSPROC, glcopypixels); \
    HandleUnsupported(PFNGLDRAWPIXELSPROC, gldrawpixels); \
    HandleUnsupported(PFNGLGETCLIPPLANEPROC, glgetclipplane); \
    HandleUnsupported(PFNGLGETLIGHTFVPROC, glgetlightfv); \
    HandleUnsupported(PFNGLGETLIGHTIVPROC, glgetlightiv); \
    HandleUnsupported(PFNGLGETMAPDVPROC, glgetmapdv); \
    HandleUnsupported(PFNGLGETMAPFVPROC, glgetmapfv); \
    HandleUnsupported(PFNGLGETMAPIVPROC, glgetmapiv); \
    HandleUnsupported(PFNGLGETMATERIALFVPROC, glgetmaterialfv); \
    HandleUnsupported(PFNGLGETMATERIALIVPROC, glgetmaterialiv); \
    HandleUnsupported(PFNGLGETPIXELMAPFVPROC, glgetpixelmapfv); \
    HandleUnsupported(PFNGLGETPIXELMAPUIVPROC, glgetpixelmapuiv); \
    HandleUnsupported(PFNGLGETPIXELMAPUSVPROC, glgetpixelmapusv); \
    HandleUnsupported(PFNGLGETPOLYGONSTIPPLEPROC, glgetpolygonstipple); \
    HandleUnsupported(PFNGLGETTEXENVFVPROC, glgettexenvfv); \
    HandleUnsupported(PFNGLGETTEXENVIVPROC, glgettexenviv); \
    HandleUnsupported(PFNGLGETTEXGENDVPROC, glgettexgendv); \
    HandleUnsupported(PFNGLGETTEXGENFVPROC, glgettexgenfv); \
    HandleUnsupported(PFNGLGETTEXGENIVPROC, glgettexgeniv); \
    HandleUnsupported(PFNGLISLISTPROC, glislist); \
    HandleUnsupported(PFNGLFRUSTUMPROC, glfrustum); \
    HandleUnsupported(PFNGLLOADIDENTITYPROC, glloadidentity); \
    HandleUnsupported(PFNGLLOADMATRIXFPROC, glloadmatrixf); \
    HandleUnsupported(PFNGLLOADMATRIXDPROC, glloadmatrixd); \
    HandleUnsupported(PFNGLMATRIXMODEPROC, glmatrixmode); \
    HandleUnsupported(PFNGLMULTMATRIXFPROC, glmultmatrixf); \
    HandleUnsupported(PFNGLMULTMATRIXDPROC, glmultmatrixd); \
    HandleUnsupported(PFNGLORTHOPROC, glortho); \
    HandleUnsupported(PFNGLPOPMATRIXPROC, glpopmatrix); \
    HandleUnsupported(PFNGLPUSHMATRIXPROC, glpushmatrix); \
    HandleUnsupported(PFNGLROTATEDPROC, glrotated); \
    HandleUnsupported(PFNGLROTATEFPROC, glrotatef); \
    HandleUnsupported(PFNGLSCALEDPROC, glscaled); \
    HandleUnsupported(PFNGLSCALEFPROC, glscalef); \
    HandleUnsupported(PFNGLTRANSLATEDPROC, gltranslated); \
    HandleUnsupported(PFNGLTRANSLATEFPROC, gltranslatef); \
    HandleUnsupported(PFNGLARRAYELEMENTPROC, glarrayelement); \
    HandleUnsupported(PFNGLCOLORPOINTERPROC, glcolorpointer); \
    HandleUnsupported(PFNGLDISABLECLIENTSTATEPROC, gldisableclientstate); \
    HandleUnsupported(PFNGLEDGEFLAGPOINTERPROC, gledgeflagpointer); \
    HandleUnsupported(PFNGLENABLECLIENTSTATEPROC, glenableclientstate); \
    HandleUnsupported(PFNGLINDEXPOINTERPROC, glindexpointer); \
    HandleUnsupported(PFNGLINTERLEAVEDARRAYSPROC, glinterleavedarrays); \
    HandleUnsupported(PFNGLNORMALPOINTERPROC, glnormalpointer); \
    HandleUnsupported(PFNGLTEXCOORDPOINTERPROC, gltexcoordpointer); \
    HandleUnsupported(PFNGLVERTEXPOINTERPROC, glvertexpointer); \
    HandleUnsupported(PFNGLARETEXTURESRESIDENTPROC, glaretexturesresident); \
    HandleUnsupported(PFNGLPRIORITIZETEXTURESPROC, glprioritizetextures); \
    HandleUnsupported(PFNGLINDEXUBPROC, glindexub); \
    HandleUnsupported(PFNGLINDEXUBVPROC, glindexubv); \
    HandleUnsupported(PFNGLPOPCLIENTATTRIBPROC, glpopclientattrib); \
    HandleUnsupported(PFNGLPUSHCLIENTATTRIBPROC, glpushclientattrib);

// clang-format on
